【发布时间】:2011-05-05 06:45:27
【问题描述】:
假设我的 UI 上有一些 TextBlock,如下所示:
<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;
}
}
前两个 TextBlock 对我来说很好,分别显示 2 和 'cake'。第三个没有完成我想要的,即使用 DessertIndex 属性来索引该数组并显示“蛋糕”。我在 SO 上搜索了一个类似的问题,但没有找到。最终,我不想在我的 .xaml 文件中指定像 2 这样的值,而是希望依靠属性来索引该数组。这可能吗?如果是这样,我在这里做错了什么?
编辑:
所以我更接近的是数据是这些对象 [] 的列表的情况,我使用上面的 StackPanel 作为 ListBox 的 DataTemplate 的一部分。因此,正如 Mark Heath 在下面所建议的那样,使用取消引用数组的属性的想法似乎并不像我想要的那样工作。想法?
【问题讨论】:
标签: wpf data-binding xaml