簡體   English   中英

以編程方式禁用在 xaml 中創建的樣式觸發器

[英]Disabling style triggers created in xaml programmatically

我正在研究 ac# WPF 項目,我正在使用樣式觸發器根據單元格值之一設置每一行的背景顏色的樣式。

下面是我的風格觸發器。

<Window.Resources>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Critical">
                    <Setter Property="Background" Value="Red" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Medium">
                    <Setter Property="Background" Value="Orange" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Warning">
                    <Setter Property="Background" Value="Yellow" />
                </DataTrigger>
                <DataTrigger Binding="{Binding Highest Alarm Level}" Value="Info">
                    <Setter Property="Background" Value="White" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>

我需要做的是,在某些情況下我不希望使用這種樣式,所以我所追求的是,​​如果在 C# 代碼中某個條件變為真,我想禁用所有不使用上面完成的樣式,即所有樣式都已關閉,因此未設置行的背景顏色。

為您的自定義DataGridRow Style添加一個鍵

<Style TargetType="DataGridRow" x:Key="MyRowStyle">
    <!-- Define Triggers -->
</Style>

然后你只需要在默認和自定義樣式之間切換。

如果您將Style設置為null ,則表示將應用默認Style

dataGrid.RowStyle = _boolCondition ? this.FindResource("MyRowStyle") as Style : null;

暫無
暫無

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

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