2016-06-30 4 views
0

У меня есть столбец, который является флажком.Снимите флажок после проверки

<telerik:GridViewColumn.CellTemplate> 
    <DataTemplate> 
     <CheckBox HorizontalAlignment="Center" IsChecked="{Binding GoodDeal, Converter={StaticResource ShortToBooleanConverter}}" Checked="CheckBox_Checked" Unchecked="CheckBox_UnChecked"></CheckBox> 
    </DataTemplate> 
</telerik:GridViewColumn.CellTemplate> 

У меня есть метод CheckBox_Check в код, чтобы обработать этот вопрос, когда флажок установлен.

Внутри метода, я нахожу, что какое-то условие не встречается. Поэтому я выхожу из окна сообщений. Когда пользователь нажмет «Да», он снимет флажок автоматически.

Моя мысль заключается в том, чтобы добавить метод в код позади.

private void CheckBox_UnChecked(object sender, RoutedEventArgs e) 
{ 
    CheckBox chkBox = sender as CheckBox; 
    chkBox.IsChecked = false; 
} 

Но как поднять это событие в коде?

ответ

1

Использование кода за обработчиков событий и MVVM привязки не хорошее сочетание, и может быть причиной ваше приложение не ведет себя, как ожидалось. Я рекомендую вам сохранить всю свою логику в своей модели просмотра, если вы реализуете решение MVVM.

Здесь, в этом псевдокоде, я использую свойство, к которому вы привязываетесь, но вы также можете использовать команды.

public short GoodDeal 
    { 
     get {return _goodDeal; } 
     set 
     { 
      if (NotGoodDeal(value)) 
      { 
       if (UserConfirmDeal() ) 
       { 
        _goodDeal = value; 
       } 
      } 
      RaisePropertyChange(); 
     } 
    } 
0

Один из способов, чтобы добавить команду на кнопку MessageBox и привязать его к вашему ViewModel и установить GoodDeal ложь.

Смежные вопросы