这是一个问题。我正在绑定一个TreeView,其中包含几种不同类型的对象。每个对象都是一个节点,有些对象具有名为IsNodeExpanded的属性,当然,有些对象没有。这是我的样式:
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsNodeExpanded, Mode=TwoWay}" />
</Style>
现在的问题是,当绑定没有此属性的项目时,我们会在输出中得到以下错误:
System.Windows.Data Error: 39 : BindingExpression path error: 'IsNodeExpanded' property not found on 'object' ''CompensationChannel' (HashCode=56992474)'. BindingExpression:Path=IsNodeExpanded; DataItem='CompensationChannel' (HashCode=56992474); target element is 'TreeViewItem' (Name=''); target property is 'IsExpanded' (type 'Boolean')
当然我们会得到很多次。所以我正在尝试想出一种基于TreeviewItem所持有的数据类型来切换其样式的方法。有任何想法吗?
一些信息:我无法为每个项手动执行此操作,因为我不是在XAML中创建它们,它们是从数据源动态创建的。
编辑:我找到了this answer但对我没用。