【问题标题】:silverlight 4 treeview silently throws Binding Errorssilverlight 4 treeview 默默地抛出绑定错误
【发布时间】: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


    【解决方案1】:

    除法不是 RmDivision 的属性。所以每次你选择一个 treeviewitem 时,它都会尝试查找该属性,但找不到它。

    【讨论】:

    • +1 thx..hmm 但我还能如何绑定它,Divisions 属性是 Pages ViewModel 的一部分?该应用程序加载数据并且实际上表现得非常好,但我确实希望错误消失。
    • 只需删除 SelectedValuePath。如果此属性为空,它将采用列表的 itemvalue。
    • 大声谢谢!像魅力一样工作。所以你说默认情况下,SelectedValuePath 只是它被分配的对象?对吗?
    • 是的,这将导致指向实体本身的空属性路径。
    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多