У меня есть коллекция public ObservableCollection
Так же есть листбокс, который я хочу заполнить объектами этой коллекции, при нажатии на каждый элемент в текстбоксе должно высвечиваться свойство выбранного элемента, но писать listBox1.DataSource/ItemsSource = ... - нельзя, надо делать биндинг только в xaml'e и я никак не разберусь, как это реализовать. коллекция заполнена и инициализирована
Ответ
Нужно завести свойство выбранного элемента в коллекции (Не забудьте о реализации INotifyPropertyChanged):
public MyClass SelectedItem {get; set; }
Далее в xaml делаете привязку к этому свойству:
UPDATE
Приведу код целиком:
// модель представления элемента коллекции
public sealed class CollectionItemVm : BaseVm
{
public int IntProperty
{
get { return _intProperty; }
set { SetProperty(ref _intProperty, value); }
}
private int _intProperty;
}
// модель представления главного окна
public sealed class MainVm : BaseVm
{
public ObservableCollection
public CollectionItemVm SelectedItem
{
get { return _selectedItem; }
set { SetProperty(ref _selectedItem, value); }
}
private CollectionItemVm _selectedItem;
public MainVm()
{
MyCollection.Add(new CollectionItemVm { IntProperty = 1 });
MyCollection.Add(new CollectionItemVm { IntProperty = 2 });
SelectedItem = MyCollection.Last();
}
}
// представление главного окна
BaseVm реализация INotifyPropertyChanged. WpfApplication4.ViewModels - пространство имен, в котором расположен класс MainVm
Комментариев нет:
Отправить комментарий