.net wpf绑定到索引器
很好。但是有没有一种方法可以将变量作为索引键传递.net wpf绑定到索引器,.net,wpf,xaml,data-binding,indexer,.net,Wpf,Xaml,Data Binding,Indexer,很好。但是有没有一种方法可以将变量作为索引键传递 <TextBlock Text="{Binding Path=[myKey]} /> 这需要一个IValueConverterIMultiValueConverter不,恐怕不行。在这一点上,您应该考虑创建一个视图模型,它可以使数据更容易绑定到它。 < P>处理此问题的最快方法通常是使用一个多绑定与一个IMultValueCurrViever,它接受集合及其索引的绑定: <TextBlock Text="{Binding Pa
<TextBlock Text="{Binding Path=[myKey]} />
这需要一个IValueConverter
IMultiValueConverter
不,恐怕不行。在这一点上,您应该考虑创建一个视图模型,它可以使数据更容易绑定到它。 < P>处理此问题的最快方法通常是使用一个多绑定与一个IMultValueCurrViever,它接受集合及其索引的绑定:
<TextBlock Text="{Binding Path=[{Binding Column.Index}]} />
然后转换器可以基于以下两个值执行查找:
<TextBlock.Text>
<MultiBinding Converter="{StaticResource ListIndexToValueConverter}">
<Binding /> <!-- assuming the collection is the DataContext -->
<Binding Path="Column.Index"/>
</MultiBinding>
</TextBlock.Text>
公共对象转换(对象[]值,类型targetType,对象参数,CultureInfo区域性)
{
如果(值。长度<2)
不做任何事;
IList list=值[0]为IList;
if(list==null | |值[1]==null | |!(值[1]为int))
不做任何事;
返回列表[(int)值[1]];
}
查看此链接中的我的答案MSDN链接,以便将来搜索:
<TextBlock.Text>
<MultiBinding Converter="{StaticResource ListIndexToValueConverter}">
<Binding /> <!-- assuming the collection is the DataContext -->
<Binding Path="Column.Index"/>
</MultiBinding>
</TextBlock.Text>
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (values.Length < 2)
return Binding.DoNothing;
IList list = values[0] as IList;
if (list == null || values[1] == null || !(values[1] is int))
return Binding.DoNothing;
return list[(int)values[1]];
}