ゴール私はコンボボックスをコンボボックスから選択したときにコンボボックスを閉じて(選択値として古い値を表示します)、OKでメッセージボックスを表示したい/キャンセルボタン。ユーザーが[OK]をクリックすると、選択した新しい値を設定して、それ以外の値を戻す必要があります。WPF:アイテムの選択と表示にコンボボックスを閉じます。メッセージボックス
問題私がアイテムを選択しているとき、メッセージボックスをComboboxと一緒に表示できますが、これは必要ありません。ユーザーが何かを選択するとすぐに、私はComboboxを閉じてMessageboxを表示したいと思います。
どうすればいいですか?
のXmaIコード
<ComboBox Name="Currency" Grid.Row="1" Grid.Column="5" ItemsSource="{Binding comboboxSource}"
SelectedValuePath="Value.bank_currency" IsReadOnly="False" IsTextSearchEnabled="True" TextSearch.TextPath="Value.bank_currency"
SelectedItem="{Binding SelectedBankCurrency, UpdateSourceTrigger=LostFocus,Mode=Twoway}">
C#コード
public KeyValuePair<string, bankCurrencyObject>? SelectedBankCurrency
{
get { return _selectedCurrency; }
set
{
MessageBoxResult result = MessageBox.Show("Are you sure you want to change the currency?",
"Warning",
MessageBoxButton.OKCancel,
MessageBoxImage.Question);
if (result == MessageBoxResult.Cancel)
{
return;
}
else
{
//set values
}
}
}
SelectionChangedイベントを使用しようとしましたが、これは動作しませんでした、
private void Combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (DataContext == null)
return;
var combo = (sender as ComboBox);
if (combo != null && combo.IsDropDownOpen)
{
combo.IsDropDownOpen = false;
var binding = combo.GetBindingExpression(ComboBox.SelectedItemProperty);
binding.UpdateSource();
binding.UpdateTarget();
}
}`
'(結果= MessageBoxResult.Cancel!)場合_selectedCurrency =値;' – Vyrira
@Vyrira私はこれを試してみましたが、これにもコンボボックスが閉じて、メッセージボックス – S52
と重複は、あなたが通貨へのアクセス権を持っていないいませんコンボボックス? MessageBoxを表示する前に 'Currency.IsDropDownOpen = false; 'を設定することができます。 – Vyrira