簡體   English   中英

C# WPF - 為在不同網格中定義的多個復選框創建通用樣式觸發器

[英]C# WPF - Create a generic style trigger for multiple checkboxes defined within separate grids

我有 40 多個復選框,每個復選框都位於視圖的單獨網格中。 這樣做的目的是讓我可以根據特定條件輕松地將網格的背景設置為黃色。 下面的代碼片段按預期工作。

唯一的缺點是我目前必須復制此樣式並將其放在 40 個復選框中的每一個中並綁定到元素名稱。 因此,我的問題是如何使網格樣式更通用,這樣我就不必將樣式放在每個復選框中並綁定到元素名稱。 任何建議將不勝感激。

<Grid Margin="5 10 0 0">
       <CheckBox Name="cbValid" Content="VALID-CATEGORY" FontSize="12"
       IsChecked="{Binding Category.VALID_CATEGORY}"
       Style="{StaticResource CheckBoxStyle}"/>
       <Grid.Style>
            <Style TargetType="Grid">
                   <Style.Triggers>
                          <DataTrigger Binding="{Binding ElementName=cbValid, Path=Background}" Value="Yellow">
                               <Setter Property="Background" Value="Yellow" />
                          </DataTrigger>
                   </Style.Triggers>
            </Style>
       </Grid.Style>
</Grid>

如果為 CheckBox 創建自定義模板,則不需要Grid

或者,您可以使用隱式Grid樣式將Background綁定到其第一個孩子的Background

<Style TargetType="Grid">
    <Setter Property="Background"
            Value="{Binding Children[0].Background, RelativeSource={RelativeSource Self}}" />
</Style>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM