Очистить ячейку, когда она отключена - PullRequest
0 голосов
/ 31 августа 2018

У меня есть сетка данных, которая использует стили типа DataGridCell для отключения некоторых ячеек в зависимости от значения в другой ячейке той же строки.

Ниже XAML для стиля

    <Style x:Key="testCellStyle" TargetType="{x:Type DataGridCell}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Segment}" Value="0">
                <Setter Property="IsEnabled" Value="False"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Segment}" Value="1">
                <Setter Property="IsEnabled" Value="True"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>

Эта часть работает как задумано.

Теперь, когда столбцы привязаны к свойствам виртуальной машины, которые соответствующим образом обновляют базу данных, мне нужно очистить ячейку перед ее отключением, чтобы не сохранять нежелательные значения в БД.

Будучи новичком в C #, я бы предпочел использовать XAML для этой цели, если это возможно.

Как можно добиться такого поведения?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Будучи новичком в C #, я бы предпочел использовать XAML для этой цели, если это возможно.

XAML является языком разметки . Его нельзя использовать для очистки любых значений из вашего исходного объекта.

Что вам нужно сделать, это очистить значения в вашем объекте данных, как только свойство Segment будет установлено в 1, и вы должны сделать это программно, либо в классе, где Segment и другие свойства определены самим или из класса, который устанавливает свойство Segment.

Вы не можете и не должны очищать какие-либо значения базового объекта данных, используя DataTrigger.

0 голосов
/ 31 августа 2018

Мой трюк: установите Foreground на Transparent, это означает, что значение все еще там, но не видно.

<DataTrigger Binding="{Binding Segment}" Value="0">
    <Setter Property="IsEnabled" Value="False"/>
    <Setter Property="Foreground" Value="Transparent"/>
</DataTrigger>
...