Значок / кнопка, которая изменяется в зависимости от значения логического связывания в MVVM - PullRequest
0 голосов
/ 07 июня 2019

Я дошел до этого с моим XAML, и мне стало интересно, правильно ли я отношусь к значку / кнопке для отображения данных в сетке данных.Я использую Material Design.

У меня есть логическое свойство в модели представления, называемое IsLocked.Мне нужен значок в столбце, который изменится на значок блокировки или разблокировки в зависимости от значения, и я хочу иметь возможность нажать на замок, чтобы изменить значение.Я пропускаю событие кнопки / щелчка.Я пытаюсь сохранить это в XAML.

Бонусом будет некоторая обратная связь пользовательского интерфейса при наведении курсора, чтобы пользователь знал, что он может щелкнуть по нему.Как я могу включить это тоже?

Это правильный подход?Как превратить это во что-нибудь, способное щелкать мышью?

    <DataGridTemplateColumn Width="Auto" Header="Is Locked">
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <materialDesign:PackIcon x:Name="LockIcon" Kind="LockOpenOutline" Foreground="Green"/>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding isLocked}" Value="True">
                        <Setter Property="Kind" Value="Lock" TargetName="LockIcon"/>
                        <Setter Property="Foreground" Value="Red" TargetName="LockIcon"/>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>
...