Отключить кнопку, когда вывести мышь из-под контроля - PullRequest
0 голосов
/ 22 февраля 2019

Скажем, у меня есть Telerik RadGridView, снаружи есть кнопка.Когда мышь щелкает строку в RadGridView, кнопка активируется.Если мышь выходит за пределы RadGridView, кнопка отключается.

Мой код

rgv_LostFocus(object sender, eventArgs e)
{
  // do something
   MyViewModel.IsButtonEnabled = false;
}

Однако я не хочу использовать код позади.Может быть, используя поведение?

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

За @ мм8 подсказка.

<telerik:RadGridView xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
    <i:Interaction.Triggers>
       <i:EventTrigger EventName="LostFocus">
           <i:InvokeCommandAction Command="{Binding LostFocusCommand}" />
       </i:EventTrigger>
    </i:Interaction.Triggers>
 </telerik:RadGridView>

Затем в ViewModel,

public DelegateCommand LostFocusCommand = new DelegateCommand(RadGridViewLostFocus); 

В методе RadGridViewLostFocus установите для свойства bool значение false;

private void RadGridViewLostFocus()
{
    IsButtonEnabled = false;
 }
0 голосов
/ 22 февраля 2019

Вы можете использовать триггер взаимодействия из System.Windows.Interactivity и ChangedPropertyAction из Microsoft.Expression.Interactions.dll :

<telerik:RadGridView xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
                     xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="LostFocus">
            <ei:ChangePropertyAction TargetObject="{Binding}" TargetName="IsButtonEnabled" Value="false" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
...
</telerik:RadGridView>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...