C# 数据视图中的WPF双向数据绑定组合框
我目前在自定义控件中有一个XAML组合框C# 数据视图中的WPF双向数据绑定组合框,c#,wpf,xaml,data-binding,combobox,C#,Wpf,Xaml,Data Binding,Combobox,我目前在自定义控件中有一个XAML组合框 <ComboBox Name="cboPropertyName" ItemsSource="{Binding}" Visibility="Hidden" GotFocus="TxtPropertyName_GotFocus" DataContextChanged="CboPropertyName_DataContextChanged"
<ComboBox Name="cboPropertyName"
ItemsSource="{Binding}"
Visibility="Hidden"
GotFocus="TxtPropertyName_GotFocus"
DataContextChanged="CboPropertyName_DataContextChanged"
SelectionChanged="CboPropertyName_SelectionChanged"/>
它通过代码隐藏连接
DataView DataPropsView = new DataView(_ControlData.Tables["GME_DataProperties"]);
DataPropsView.RowFilter = "Key < 1000";
DataPropsView.Sort = "Key ASC";
cboPropertyName.DataContext = DataPropsView;
cboPropertyName.DisplayMemberPath = "Name";
cboPropertyName.SelectedValuePath = "Key";
cboPropertyName.SelectedValue = Convert.ToInt32(_PropData["SubPropertyValue"]);
DataView DataPropsView=newdataview(_ControlData.Tables[“GME_DataProperties”);
DataPropsView.RowFilter=“Key<1000”;
DataPropsView.Sort=“Key ASC”;
cboPropertyName.DataContext=DataPropsView;
cboPropertyName.DisplayMemberPath=“Name”;
cboPropertyName.SelectedValuePath=“Key”;
cboPropertyName.SelectedValue=Convert.ToInt32(_-PropData[“subpertyvalue]”);
但是,当此客户控件的下拉列表发生更改时,PropData数据视图将不会更改/更新
如何使这成为一个双向数据绑定,以便数据视图更新?我建议您放弃codebehind,在XAML中设置所有信息,以便更轻松地进行设置 要在上使用双向绑定,需要将目标绑定到
SelectedValue
,例如:
SelectedValue="{Binding CategoryID, Mode=TwoWay}"
您似乎对数据驻留的位置存在问题,这是您最大的问题 一般来说,人们不必绑定词典。绑定本质上是一种反射,至少可以说,反射到字典中是有问题的。要执行您需要执行的操作,您应该在控件上创建一个通知属性,并对其进行双向绑定。在该属性的集合上,同时更改字典值
此外,您也不会绑定到视图进行更改,因为它是一个视图。使用MVVM模式查看,从ViewModel创建视图,并将组合框绑定到ViewModel的数据。然后,双向绑定将按照通常设计的方式工作。大多数人使用组合框的方式是继承datacontext,将itemssource绑定到集合,将selectedvalue(或index)绑定到继承的datacontext中的属性。通常,要从中选择的项是静态数据和动态源。主视图模型中的集合是常见的选择。要更新
\u PropData
中的哪一行?