我无法真正理解发生了什么。从我以前的线程在这里,我问为什么数据没有在组合框中检索但文本框没有问题。我想要的只是使用导航按钮检索每条记录。组合框属性部分有什么我错过的吗?我所做的事情是否有替代解决方案?所有编码都可以从我以前的线程中获得,在这里,Visual Studio 组件有问题吗?
非常感谢
我的朋友,你离这应该怎么做还差得很远。你说的是 a ComboBox
,但我认为你一定是指 a ListView
。唯一ComboBox
在你ComboBoxItem
的代码里面有硬编码,所以我猜你不是在谈论那个。
无论哪种方式,这都是您解决问题的方法:
为您的数据添加一个与此类似的类:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string HealthDetails { get; set; }
}
将此依赖属性添加到您的代码后面:
public static readonly DependencyProperty PeopleProperty = DependencyProperty.Register("People", typeof(ObservableCollection<Person>), typeof(MainWindow), new UIPropertyMetadata(new ObservableCollection<Person>()));
public ObservableCollection<Person> People
{
get { return (ObservableCollection<Person>)GetValue(PeopleProperty); }
set { SetValue(PeopleProperty, value); }
}
用您的数据填充People
集合。然后最重要的是,绑定到这个集合。以前,您绑定到整个MainWindow.cs
班级...更改此
<ListView Height="134" HorizontalAlignment="Left" Name="listView1"
ItemsSource="{Binding}" VerticalAlignment="Top" Width="384">
对此:
<ListView Height="134" HorizontalAlignment="Left" Name="listView1"
ItemsSource="{Binding People}" VerticalAlignment="Top" Width="384">
它对我来说很好用。但是,您的导航按钮永远不会像这样工作。这里有很多问题,我根本没有时间为您解决所有问题。以下是您出错的地方的摘要:
Window
.INotifyPropertyChanged
接口的属性中。DataTable
不应显示在 UI 中。ItemsSource
集合控件的属性绑定到视图模型或代码后面的集合属性。SelectedItem
集合控件的属性绑定到视图模型或后面代码中正确类型的属性。