父母更新时更新组合框
我试图绑定显示客户端视图窗体中的客户端状态的组合框。我有一个名为ClientUI一个上下文类它有一个属性CurrentClient这样的:父母更新时更新组合框
private Client _CurrentClient= null;
public Client CurrentClient
{
get
{
return _CurrentClient;
}
set
{
_CurrentClient= value;
OnPropertyChanged("CurrentClient");
}
}
在我的XAML形式我有充分的财产CurrentClient如姓名,ADRESS等绑定到文本框。 所以,当我做的:
CurrentClient = SomeClient;
它会自动更新我的表格的所有字段以显示新的客户。 现在我想要到一个ComboBox与客户状态我ClientUI结合我状态的列表和我CurrentClient有状态财产。 状态也是属性类名称键入字符串。
这里是我的组合框结合:
<ComboBox IsEditable="False" DisplayMemberPath="Name" SelectedItem="{Binding CurrentClient.Status, Mode=TwoWay}" ItemsSource="{Binding ClientStatusList}" SelectedValuePath="Name" />
和它的作品,当我改变了ComboBox它改变CurrentClient的proprty,当我强迫CurrentClient.Status这样的...
CurrentClient.Status = ClientStatusList[0]
... Combobox显示值。 问题是,当我做
CurrentClient = SomeClient;
它更新每隔textBox中,但不是组合框。
感谢您的帮助!
您的“CurrentClient”属性具有属性更改通知,但您的客户端类中的“状态”属性是否具有属性更改通知?如果不尝试将INotifyPropertyChanged接口添加到客户端类,然后将属性更改通知添加到您的状态属性。
仅仅因为你有属性改变了属性的通知并不意味着子属性也可以。由于这个原因,绑定到虚线的属性可能是有节奏的。
如果您没有编辑客户端类的选项,那么您可以尝试在您的clientUI类中创建另一个“状态”属性,该属性具有属性更改通知,然后在“CurrentClient”设置器中设置该属性。你应该能够更可靠地绑定到这个新的属性
谢谢你的回答! 'Client'类实现'INotifyPropertyChanged'和'Status'属性触发'OnPropertyChanged' – Lolrapa
对不起,如果没有任何帮助 –
'SomeClient.Status'有价值吗?另外,当你尝试'CurrentClient.Status = SomeClient.Status'而不是'CurrentClient.Status = ClientStatusList [0]'时,结果是什么? – sthotakura
谢谢! 'SomeClient.Status'有一个值,但是当我做'CurrentClient.Status = SomeClient.Status'时什么都没有发生:SomeClient.Status被设置为新状态,但comboBox不更新。 – Lolrapa
'ItemsSource =“{Binding ClientStatusList}”'表示在'Client'类中有一个名为'ClientStatusList'的属性。检查'ClientStatusList'有一定的价值。 – AnjumSKhan