ListView绑定中的SelectedItem
我是WPF的新手。 在我的示例应用程序中,我使用ListView来显示属性的内容。 我不知道如何将ListView中的SelectedItem绑定到属性,然后绑定到TextBlock。
Window.xaml
MainWindow.xaml.cs
Tman manager = new Tman(); private List persons; public List Persons { get { return this.persons; } set { if (value != null) { this.persons = value; } } } private Person currentSelectedPerson; public Person CurrentSelectedPerson { get { return currentSelectedPerson; } set { this.currentSelectedPerson = value; } } private void Window_Loaded(object sender, RoutedEventArgs e){ ListViewPersonDetails.ItemsSource= manager.GetPersons(); }
Person.cs
class Person { public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } }
谢谢你的帮助。
private void Window_Loaded(object sender, RoutedEventArgs e){ ListViewPersonDetails.ItemsSource= manager.GetPersons(); }
这可能是你的问题,你不应该像这样设置itemssource。 只需用这条线替换……
this.DataContext = this;
这是将属性绑定到UI的内容,因此所有这些绑定语句都有任何意义。
您还需要更新文本块上的绑定,以实际匹配Person类中的属性名称。
编辑:
在VS中测试,你还需要1个小东西,在CurrentSelectedPerson属性上实现INotifyPropertyChanged ……
private Person currentSelectedPerson; public Person CurrentSelectedPerson { get { return currentSelectedPerson; } set { currentSelectedPerson = value; if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("CurrentSelectedPerson")); } }
作为替代方案,这也有效,有点简单……
(对其他文本框重复类似的逻辑)