更清洁的方式绑定两个相关的属性

时间:2013-12-30 16:56:45

标签: wpf entity-framework

我有一个名为GACC的项目列表,以及一个名为Zone的项目列表和2个下拉列表。什么时候 更改了Gacc下拉列表,该Ga​​cc中的区域列表发生了变化。 Gacc是一个永不改变的全局列表,其设置如下:

 var gacclist = (from d in ctx.GACCS
                        select d).Distinct();
        radGACC.ItemsSource = gacclist;

然后我设置了xaml:

<telerik:RadComboBox Name="radGACC" DisplayMemberPath="Name" Grid.Row="1" Grid.Column="0" IsEditable="True" SelectedIndex="0" VerticalAlignment="Center" Height="22" />
    <telerik:RadComboBox Name="radZone" Grid.Row="1" Grid.Column="1" IsEditable="True" SelectedIndex="0" VerticalAlignment="Center" Height="22" />

如何使用绑定以便radZone下拉列表中的区域列表自动显示所选gacc中的区域?我打算使用一个事件并在radGacc改变时更改radZone,但我认为使用一些花哨的绑定可能有更好的方法。感谢。

编辑:一个gacc包含许多区域,因此它是一种非常简单的关系。

1 个答案:

答案 0 :(得分:1)

试试这个

<telerik:RadComboBox Name="radGACC" DisplayMemberPath="Name" Grid.Row="1" Grid.Column="0" IsEditable="True" SelectedIndex="0" VerticalAlignment="Center" Height="22" />
<telerik:RadComboBox Name="radZone" Grid.Row="1" Grid.Column="1" IsEditable="True" SelectedIndex="0" VerticalAlignment="Center" Height="22" ItemsSource="{Binding SelectedItem.Zones, ElementName=radGACC}"/>
  

ItemsSource =“{Binding SelectedItem.Zones,ElementName = radGACC}”

这会将ItemSource绑定到Selected GACC的区域。我假设Zones是特定GACC区域的属性名称。我希望这会有所帮助