2015-12-10 2 views
0

Каков наилучший способ в C# и wpf обнаружить, было ли изменено событие выбора comboboxes во время первоначального связывания? Я только хочу обработать что-то при выборе, измененном, когда он выполняется пользователем через ui.Определить, был ли изменен выбор изменен во время привязки

Xaml без связывания части:

<ComboBox SelectionChanged="OnChanged" /> 

C# -код:

private void OnChanged(object sender, SelectionChangedEventArgs e) 
{ 
    // Here i want to know, wheter called by using ui or from binding 
} 

Спасибо!

+0

Если вы не вызываете свойства сеттер из кода, то сеттер вызывается только связыванием. – Sinatr

+0

Я не имею в виду вызов сеттера, я имею в виду вызов события SelectionChanged из combobox. – BendEg

+0

Вот простая идея: Запустите другой способ! Нет ли какого-либо события, похожего на OnBinding? – SimpleVar

ответ

0

Вместо использования событий связывания

<ComboBox SelectedItem="{Binding SelectedItem}" /> 

В ViewModel

SomeType _selectedItem; 
public SomeType SelectedItem 
{ 
    get { return _selectedItem; } 
    set 
    { 
     _selectedItem = value; 
     OnPropertyChanged(); 
     // ... put your logic when user change selection here 
    } 
} 
// use this to change selection from viewmodel 
public SomeType SelectedItemSet 
{ 
    set 
    { 
     _selectedItem = value; 
     OnPropertyChanged(); 
     // ... put your logic when selected item is set by viewmodel here 
    } 
} 
+0

Но разве это не плохой стиль mvvm, чтобы поставить логические элементы в модели просмотра? – BendEg

+0

Что такое * логический элемент *? Что именно вы собираетесь делать, когда пользователь выбирает выбор? – Sinatr

+0

Я хочу написать кое-что в файл журнала. Я мог бы сделать это в модели представлений, но, возможно, есть и другой способ. Большое спасибо :) – BendEg

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