2016-08-02 6 views
0

この質問への参照:WPF Databinding: How do I access the "parent" data context?バインドヘッダーテキストブロックISENABLED

私は似何かをしたいが、グループボックス(のヘッダのヘッダは、ボックス懸念が無効になっているので、あるされていないため、常に黒い部分が薄い灰色ですが、これはボックスの内容がすべて灰色で、上記は灰色ですが、ボックスのタイトル自体は黒のままであれば、少し奇妙に見えます。

私はアプローチリンクされた質問でflqがヘッダのtextブロックのisEnabledプロパティをgroupboxのisEnabledプロパティに単にバインドしていると言われていますが、ある時点でバインディングが失敗し、whなぜ正確に?

はHERESに私の現在のコード:

<GroupBox Header="Change Steps" Grid.Row="2" Grid.ColumnSpan="3" Name="gbChangeSteps"> 
    <GroupBox.Style> 
      <Style TargetType="GroupBox"> 
       <Setter Property="HeaderTemplate"> 
        <Setter.Value> 
         <DataTemplate> 
          <TextBlock Text="{Binding}" FontWeight="Bold" Height="19" Foreground="Black" IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GroupBox}}, Path=isEnabled}"/> 
         </DataTemplate> 
        </Setter.Value> 
       </Setter> 
      </Style> 
     </GroupBox.Style> 
<!-- ... (some non relevant Content)--> 
</GroupBox> 

答えて

0

追加の研究の後、私は、プロパティ - との組み合わせで、私を導くポストDisable groupBox including the groupBox name in WPF を見つけた> Databinding-を作成する>固定液にタイプ - >のUIElementをバインド問題は、この質問については、元のものは、全体のリビルドにつながる、小さなgのような手紙は、ヘッダーに台無しになっていた。 これは問題を修正したコードです:

<GroupBox.Style> 
    <Style TargetType="{x:Type GroupBox}"> 
     <Setter Property="HeaderTemplate"> 
      <Setter.Value> 
       <DataTemplate> 
        <TextBlock Text="{Binding}" FontWeight="Bold" Height="19" IsEnabled="{Binding IsEnabled, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UIElement}}}"> 
         <TextBlock.Style> 
          <Style> 
           <Style.Triggers> 
            <Trigger Property="Control.IsEnabled" Value="False"> 
             <Setter Property="Control.Foreground" Value ="#FF6D6D6D" /> 
            </Trigger> 
           </Style.Triggers>  
          </Style> 
         </TextBlock.Style> 
        </TextBlock> 
       </DataTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</GroupBox.Style> 
関連する問題