【发布时间】:2011-06-25 12:33:31
【问题描述】:
所以我有一个绑定到以下类型的 Silverlight 树视图控件,我将我的页面的 DataContext 设置为我的 ViewModel 的一个实例,该实例有一个 Divisions 属性,它是一个 RmDivision 对象列表。
public class RmDivision
{
public RmDivision()
{
SubDivisions = new ObservableCollection<RmDivision>();
}
public string Type { get; set; }
public string Name { get; set; }
public IList<RmDivision> SubDivisions { get; set; }
}
然后它的绑定是这样的:
<sdk:TreeView HorizontalAlignment="Stretch" Name="treeBranches"
ItemsSource="{ Binding Divisions }" VerticalAlignment="Stretch" SelectedValuePath="Division" Grid.Row="0" SelectedItemChanged="treeBranches_SelectedItemChanged">
<sdk:TreeView.ItemTemplate>
<sdk:HierarchicalDataTemplate ItemsSource="{Binding SubDivisions}">
<TextBlock Text="{Binding Name}" ToolTipService.ToolTip="{Binding Type}" />
</sdk:HierarchicalDataTemplate>
</sdk:TreeView.ItemTemplate>
</sdk:TreeView>
现在,我没有任何例外,每次我单击一个树视图项目,只在我的输出窗口我看到:
System.Windows.Data 错误:BindingExpression 路径错误:在“xxx.Base.RmDivision”“xxx.Base.RmDivision”上找不到“Division”属性 (HashCode=35753827)。 BindingExpression: Path='Division' DataItem='xxx.Base.RmDivision' (HashCode=35753827);目标元素是'System.Windows.Controls.ContentControl'(名称='');目标属性是“内容”(类型“System.Object”)..
我是这里的新手,并不真正知道发生了什么,我知道它的唯一方法是树视图,因为这是唯一与 Division 属性相关的控件,是吗SelectedValuePath,我希望 SelectedItem 成为 RmDivision 的一个实例,并且当前它的工作方式是这样的。
问候
【问题讨论】:
标签: silverlight data-binding silverlight-4.0 treeview treeviewitem