我关注对象
public int PersonAge { get; set; }
public List<PersonGroup> PersonList { get; set; }
public class PersonGroup()
{
public string Name { get; set; }
public string DefaultAge { get; set; }
}
我的ComboBox绑定到PersonList,而我还有一个绑定到PersonAge的TextBox。 如果用户在TextBox(PersonAge)中输入数字'20',我想在ComboBox中选择相应的PersonGroup,如果用户从ComboBox中选择PersonGroup-Item“Test1”,我希望TextBox显示10在TextBox中(因为PersonList [1]将是例如Name =“Test1”; DefaultAge = 10;)
如何通过DataBinding解决这个问题?
非常感谢。
干杯, 约瑟夫
答案 0 :(得分:1)
在我的脑海中,您可以尝试在ComboBox上使用SelectedValue和SelectedValuePath属性:
<ComboBox x:Name="ComboBox" SelectedValuePath="DefaultAge" SelectedValue="{Binding PersonAge}"/>
<TextBox Text="{Binding ElementName=ComboBox, Path=SelectedValue}"/>
edit1:我认为文本框可以绑定到PersonAge,使代码更清晰......不确定,不幸的是我暂时无法测试它。
答案 1 :(得分:1)
您可以公开ListCollectionView,而不是原始列表。设置Filter功能。更新了PersonAge后,您可以从视图中调用Refresh()方法。至于另一部分 - 您始终可以绑定到集合视图中的当前项。例如:
<TextBox Text="{Binding PersonList/DefaultAge}"/>
希望这有帮助。