【发布时间】:2010-11-15 16:29:02
【问题描述】:
我有以下 Xaml(Silverlight,但没关系):
<ListBox x:Name="Results"> ... </ListBox>
<StackPanel DataContext="{Binding ElementName=Results, Path='SelectedItem.Attributes'}">
<TextBlock Text="{Binding ElementName=Results, Path='SelectedItem.Attributes[ID]'}" />
<TextBlock Text="{Binding '[ID]'}" />
</StackPanel>
当我填充 ListBox 时,会填充第二个 TextBlock,但不会填充第一个 TextBlock。当我从列表框中选择任何项目时,第一个 TextBlock 会被填充,但第二个不会改变。
我假设我遗漏了一些东西来告诉 StackPanel 的 DataContext,每当我更改 ListBox 中的 SelectedItem 时它都需要刷新,但我不知道我需要做什么。
理想情况下,我不想为我的每个 TextBlocks 绑定到整个路径(会有一堆)。
【问题讨论】:
-
嗨 Rob,我觉得它看起来不错。我自己创建了一个小例子,它很有效(如果你愿意,我会发布它)。您能否提供更多信息。列表框的ItemsSource是什么,...也许这有助于解决您的问题。
-
我将代码中的 ListBox 绑定到 List
... obj 有一个 Dictionary 属性,称为 Attributes。当我像在顶部 TextBlock 中那样绑定东西时,它可以正常工作,但我想绑定像第二个 TextBlock 这样的东西。底部的 TextBlock 被绑定,但仅在我填充 ListBox 时,而不是在所选项目更改时。顶部的 TextBlock 仅被填充,然后 ListBox 的 SelectedItem 被更改,而不是在填充时......
标签: silverlight data-binding xaml binding