В моем приложении WPF есть поле со списком:
<ComboBox ItemsSource="{Binding CompetitorBrands}" DisplayMemberPath="Value"
SelectedValuePath="Key" SelectedValue="{Binding Path=CompMfgBrandID, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" Text="{Binding CompMFGText}"/>
Привязано к коллекции KeyValuePair<string, string>
Вот свойство CompMfgBrandID в моей ViewModel:
public string CompMfgBrandID
{
get { return _compMFG; }
set
{
if (StockToExchange != null && StockToExchange.Where(x => !string.IsNullOrEmpty(x.EnteredPartNumber)).Count() > 0)
{
var dr = MessageBox.Show("Changing the competitor manufacturer will remove all entered parts from the transaction. Proceed?",
"Transaction Type", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (dr != DialogResult.Yes)
return;
}
_compMFG = value;
StockToExchange.Clear();
...a bunch of other functions that don't get called when you click 'No'...
OnPropertyChanged("CompMfgBrandID");
}
}
Если вы выберете «да», он будет вести себя как положено.Элементы очищаются, а остальные функции вызываются.Если я выберу «Нет», он вернется и не очистит мой список или не вызовет какие-либо другие функции, что хорошо, но в поле со списком все еще отображается новый выбор.Мне нужно, чтобы вернуться к исходному выбору, как будто ничего не изменилось, когда пользователь выбирает «Нет».Как я могу сделать это?Я также попытался добавить e.Handled = true
в коде позади, но безрезультатно.