ユーザーのアイテムの選択をクリアするまで、リストボックスの選択を「フリーズ」できる必要があります。
例が見つからないようで、正しい方向に少しポインタが必要です。
私はMVVMにいるので、おそらくRelayCommandを起動して、SelectedIndexが-1の場合にのみ有効にしたいと思うでしょう。
どうすればいいですか?
ユーザーのアイテムの選択をクリアするまで、リストボックスの選択を「フリーズ」できる必要があります。
例が見つからないようで、正しい方向に少しポインタが必要です。
私はMVVMにいるので、おそらくRelayCommandを起動して、SelectedIndexが-1の場合にのみ有効にしたいと思うでしょう。
どうすればいいですか?
次のように Enable プロパティを使用してみることができます。
<Listbox Enabled=False />
必要に応じて、コード内でこのプロパティを別のプロパティと組み合わせることもできます。
Property IsListBoxEnable As Boolean
<Listbox Enabled="{Binding IsListBoxEnable, Mode=TwoWay}" />
コードでは、IsLisBoxEnable の値を変更するだけです。
true
これを行う 1 つの方法は、IsEnabled を SelectedIndex にデータ バインドし、SelectedIndex が -1 の場合にのみ返すコンバータを用意することです。
<Listbox IsEnabled={Binding RelativeSource={RelativeSource Self},
Path=SelectedIndex, Converter=YourConverter} />
ライティングYourConverter
について詳しくはこちらのページをご覧ください
ビューモデルでは、SelectedIndex のプロパティを設定し、それを -1 に設定するだけで、リストボックスを再び有効にする必要があります。
リストボックスを完全に無効にしたくない場合は、datavalidation を使用して、特定の条件下でエラー メッセージを表示できます。