我试图根据行数据绑定类型的布尔属性隐藏扩展器ToggleButton的显示。我已经实现了ToggleButton样式,这样它就可以根据IsEnabled属性更改它的呈现方式,并使用下面的代码将其绑定到Expander的IsEnabled:
<Style x:Key="ExpandCollapseToggleStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="IsEnabled" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Expander}}, Path=IsEnabled}" />
</Style>然后尝试绑定到扩展器的IsEnabled,如下所示:
<DataGrid.RowHeaderTemplate>
<DataTemplate>
<Expander Expanded="Expander_Expanded" Collapsed="Expander_Collapsed" Style="{StaticResource DataGridRowHeaderExpander1}"
IsEnabled="{Binding IsDistributed}">
</Expander>
</DataTemplate>
</DataGrid.RowHeaderTemplate>如果我将IsEnabled硬编码为true或false,渲染就能完美地工作。此外,所有其他行绑定都按预期工作。在这种情况下,我得到以下错误:
System.Windows.Data Warning: 67 : BindingExpression (hash=63415529): Resolving source (last chance)
System.Windows.Data Warning: 70 : BindingExpression (hash=63415529): Found data context element: Expander (hash=22324024) (OK)
System.Windows.Data Warning: 78 : BindingExpression (hash=63415529): Activate with root item <null>
System.Windows.Data Warning: 106 : BindingExpression (hash=63415529): Item at level 0 is null - no accessor
System.Windows.Data Warning: 80 : BindingExpression (hash=63415529): TransferValue - got raw value {DependencyProperty.UnsetValue}
System.Windows.Data Warning: 88 : BindingExpression (hash=63415529): TransferValue - using fallback/default value 'True'
System.Windows.Data Warning: 89 : BindingExpression (hash=63415529): TransferValue - using final value 'True'https://stackoverflow.com/questions/47763262
复制相似问题