我有一个双打列表。我想将此列表的特定项目绑定到TextBlock。此特定项目由另一个控件(组合框)确定:
<ComboBox Name="MyBox">
....
</ComboBox>
<TextBlock Binding="{MyList, >get item index == MyBox.SelectedIndex< }"/>
我现在可用的解决方案是将TextBlock绑定到上下文的另一个属性,但是,我宁愿采用另一种方法,因为这迫使我必须设置多个属性更改通知...
谢谢。
答案 0 :(得分:2)
您可以在绑定中使用.xaml
在ElementName=_
中引用另一个控件,然后使用Path=_
指定绑定的路径,如下所示:
<ComboBox Name="MyBox">
....
</ComboBox>
<TextBlock Binding="{Binding ElementName=MyBox, Path=SelectedItem}"/>
答案 1 :(得分:0)
我想出了一个适合我需要的解决方案,它涉及使用MultiBinding和Converter:
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource GenericMemConverter}">
<Binding Path="TotalGPUMemory"/>
<Binding ElementName="CurPlatformView" Path="SelectedIndex"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
如您所见,我指向该应用程序的另一个控件,并传递了 SelectedIndex 。
转换器:
public object Convert(object[] o, Type type, object parameter, CultureInfo culture)
{
List<long> vals = (List<long>)o[0];
int plat = (int)o[1];
double mb = (double)vals[plat] / 1024.0 / 1024.0;
return mb.ToString("N1") + "MB";
}