说指定数组的元素我有我的UI部分的TextBlocks,像这样的东西:在WPF绑定到地产
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding DessertIndex}" />
<TextBlock Text="{Binding Food[2]}" />
<TextBlock Text="{Binding Food[{Binding DessertIndex}]}" />
</StackPanel>
,并在我的代码后面我有这样的事情:
public partial class MainWindow : Window
{
public int DessertIndex
{
get { return 2; }
}
public object[] Food
{
get
{
return new object[]{"liver", "spam", "cake", "garlic" };
}
}
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
}
前两个TextBlocks对我来说很好,分别显示2和'cake'。第三个不完成我想要的,即使用DessertIndex属性来索引该数组,并显示'蛋糕'。我在这里搜索了一个类似的问题,但没有找到。最终,我不想在我的.xaml文件中指定像2那样的值,并且想要依靠属性来索引该数组。这可能吗?如果是这样,我在这里做错了什么?
编辑:
所以我更加仔细地是数据为这些对象[]列表的情况,我在上面使用的StackPanel中作为一个ListBox一个DataTemplate的一部分。所以这个想法,正如Mark Heath在下面提出的那样,使用一个解引用数组的属性似乎并不像我想要的那样工作。想法?
感谢科林 - 这对我的测试应用程序非常有效,并且怀疑它在真实情况下也能正常工作。今天过得很愉快 - 我从你身上学到了很酷的东西。 :) – itsmatt 2010-11-04 20:42:51
您可能会尝试使用ConverterParameter尝试不同的方法来避免多重绑定。不幸的是,这将无处可去,因为ConverterParameter无法使用绑定,因为它不是DependencyProperty,并且您必须使用MultiBinding – 2013-10-09 09:56:29