<TextBlock Text="{Binding Path=[0]} />
或
<TextBlock Text="{Binding Path=[myKey]} />
工作正常。但是有没有办法将变量作为索引器键传递?
<TextBlock Text="{Binding Path=[{Binding Column.Index}]} />
最佳答案
处理此问题的最快方法通常是使用带有 IMultiValueConverter 的 MultiBinding,该 IMultiValueConverter 接受集合及其绑定(bind)的索引:
<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]];
}
关于.net - wpf 绑定(bind)到索引器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4511619/