<TextBlock Text="{Binding Path=[0]} />
<TextBlock Text="{Binding Path=[myKey]} />
工作正常。但是有沒有辦法將一個變量作爲索引鍵傳遞?
<TextBlock Text="{Binding Path=[{Binding Column.Index}]} />
<TextBlock Text="{Binding Path=[0]} />
<TextBlock Text="{Binding Path=[myKey]} />
工作正常。但是有沒有辦法將一個變量作爲索引鍵傳遞?
<TextBlock Text="{Binding Path=[{Binding Column.Index}]} />
這要求
IValueConverter
IMultiValueConverter
。
不,恐怕不是。在這一點上,你應該考慮創建一個視圖模型來改變數據的形狀,使其更容易綁定到它。
處理最快的方法通常是使用一個MultiBinding與接受的收集和其綁定指數的IMultiValueConverter:
<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]];
}
MSDN鏈接,未來搜索:http://msdn.microsoft.com/en-us/library/ms742451.aspx – yzorg 2011-09-12 15:03:19
檢查我在這個環節答案http://stackoverflow.com/q/ 4385693/217880 – biju 2010-12-23 16:55:17