将此数据库内容绑定到 WPF 控件的最简单方法是什么
本文关键字:控件 最简单 方法 是什么 WPF 数据库 绑定 | 更新日期: 2023-09-27 18:36:22
我是WPF的新手。
我有一个包含 2 列的数据库表:类别、类型。主键组合为(类别、类型)。类型从属于类别,表示 1 个包含多个类型的类别。
现在,在我的 WPF UI 中,我有 2 个组合框控件。第一个绑定到数据库表中的不同类别列表。我通过将控件绑定到不同(类别)的数据库视图来完成此操作。第二个需要显示属于第一个控件中当前所选类别的类型列表。
我做了研究,但不知道如何轻松完成。我尝试创建一个存储过程以根据给定的类别选择所需的类型值列表,但不知道如何将所选类别传递给 XAML 中的存储过程。我必须使用代码而不是 XAML 来执行此操作吗?你有什么建议?
多谢
我会创建一个对象来保存您的类别,其中包含该类别的每个可能类型。 像...
public class Category
{
public ObservableCollection<string> Types { get; set; }
}
然后,当您初始化每个类别时,您可以设置允许哪些类型进入...
public class MyClass
{
public ObservableCollection<Category> Categories { get; set; }
public MyClass()
{
InitializeComponent();
ObservableCollection MyTypes = new ObservableCollection();
MyTypes.Add("type1");
MyTypes.Add("type2");
MyTypes.Add("Type3");
Categories.Add(new Category() { Types = MyTypes });
//Probably a more elegant way to do this, but hard to say based on information given
this.DataContext = this;
}
}
最后,您可以将第一个组合框绑定到类别列表,将第二个组合框绑定到另一个组合框的选定项目的"类型"列表。
<ComboBox Name="cboCategory" ItemsSource = "{Binding Categories}" />
<ComboBox ItemsSource = "{Binding ElementName=cboCategory, Path=SelectedItem.Types}" />
问题是,每当我们显示此类数据时,通常我们都会首先获取数据,然后准备我们需要的对象,然后绑定它 wpf 控件。
现在首先您已经绑定到组合框,因此在选定项的基础上,您需要填写另一个下拉列表并将其绑定到第一个或类别列表的选择更改上,您也可以使用属性更改事件。
注意:如果数据很大,那么我们将使用CTE或分页之类的东西来获取数据。