2017-12-11 30 views
1

行データバインディングタイプのBooleanプロパティに基づいて、Expander ToggleButtonの表示を非表示にしようとしています。私はこのようにパンダのIsEnabledにバインドしようとWPF DataGrid 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プロパティに基づいて、レンダリングによる変更してトグルボタンのスタイルを実現し、かつこれにパンダの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' 

答えて

1

が、私はそれを見つけ、ここにある:

IsEnabled="{Binding Path=Item.IsDistributed, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}}" 

項目は、それが表すバインドされたデータ項目があるDataGridRowのプロパティです。