コンボボックス内のチェックボックスは誰がWPFで実装しますか?コンボボックス内のチェックボックスWPF
答えて
はい、可能です。私は本質的に同じコントロールであるListViewと同様のことをしました。ここのトリックは、それを作ることですファースト。あなたが何千ものアイテムを持っているならば、それは30秒か何かを取るべきではありません。
これを実装する方法は、ジェネリックコントロールを作成するか、このオブジェクトタイプ専用のコントロールを作成するかによって異なります。その理由は、これを高速に実行するには、アイテムオブジェクトのどのプロパティがIsCheckedであるかを知る必要があるからです。私のコントロールでは、私はIsCheckedPathというDPをWPFの精神の中に作りました。コントロールは、各オブジェクトのIsCheckedPathプロパティを対応するチェックボックスに自動的にバインドします。
マスターチェックボックスを切り替えると、アイテムをループしてプロパティ値を設定する必要があります。 2つの選択肢があります:1)反射または2)IsCheckedPath DPの設定時に式ツリーをコンパイルします。
反射が遅すぎるので#2でした。
この特定のオブジェクトのみを気にして、コントロールを再利用するとは思わない場合は、両方をスキップしてプロパティを設定します。良いアイディアではありません、私は一般的なルートを行くだろう:)。
また、WPFコントロールの仮想化とチェックボックスがスクロールして表示されているアイテムに対しては「生きていない」ため、ビジュアルを介して「ショートカット」とループを繰り返すことはできませんビュー。
こんにちは、WPFへようこそ!この状況では、あなたが探しているのはMultiBindingのようです。マスターチェックボックスは個々のチェックボックスを変更することができ、その逆も可能です。バインディングは双方向でなければなりません。あなたはまた、コンバータを作成する必要があります
<Checkbox x:Name="MasterCheckBox">
<Checkbox.IsChecked>
<MultiBinding Converter="[Instance of your converter class]" Mode="TwoWay">
<Binding Source="ConversationViewModel.ConversationValues" Convert="{StaticResource PersonFilterTypeToBoolConverter}" ConverterParameter="{x:Static shared:MethodType.Mobile}"/>
<Binding Source="ConversationViewModel.ConversationValues" Convert="{StaticResource PersonFilterTypeToBoolConverter}" ConverterParameter="{x:Static shared:MethodType.Skype}"/>
<Binding Source="ConversationViewModel.ConversationValues" Convert="{StaticResource PersonFilterTypeToBoolConverter}" ConverterParameter="{x:Static shared:MethodType.Landline}"/>
</MultiBinding>
</Checkbox.IsChecked>
:MultiBindingのは、このように、マスターチェックボックスに適用されます。上にリンクされている記事では、簡単なコンバータの作成方法について説明しています。あなたの場合、バインディングは双方向であるため、ConvertメソッドとConvertBackメソッドの両方を処理する必要があります。 ConvertBackメソッドは、ユーザーがマスターチェックボックスを変更したときに実行されるため、マルチバインディングの下にあるすべてのバインディングをtrueまたはfalseに設定する必要があります。 Convertメソッドは、個々のチェックボックスの1つが変更されたときに実行されます。その場合、WPFでは、すべての個々のボックスがチェックされている場合はマスターチェックボックスのIsCheckedをtrueに設定し、すべての個々のボックスがチェックされていない場合はfalseに設定し、それらが混在している場合はIsCheckedをnullにする必要があります。 IsCheckedはそのプロパティの型がboolなのでnullにできますか? (ヌルブルブール)、どのようにスリーステートのチェックボックスWPFで動作します。
- 1. リストビュー内のWPFコンボボックス
- 2. データグリッドからデータを引き出し、WPFのコンボボックス内のチェックボックスに表示する
- 3. チェックボックス付きのWPFコンボボックスを探している
- 4. チェックボックス付きコンボボックス
- 5. コンボボックスとwinformsのチェックボックス
- 6. WPFコンボボックスのデータバインディング
- 7. WPFのコンボボックス:Outputproblem
- 8. WPFはチェックボックス付きコンボボックスをコンボボックスから選択解除します - リセット項目付きコンボボックス
- 9. WpfのComboboxアイテム内のSelectAllチェックボックス
- 10. 動的チェックボックスとコンボボックス
- 11. ExtJs 4コンボボックスとチェックボックス
- 12. WPFコンボボックス - タグ
- 13. WPFコンボボックス+ MouseLeftButtonDown
- 14. WPFリストボックスとコンボボックス
- 15. wpfコンボボックスのデフォルト値
- 16. 同期コンボボックスWPF、MVVM
- 17. DataGridTemplateColumnのコンボボックスへのWPFバインディング
- 18. wpfアルファベット順のコンボボックスのソート
- 19. WPF複数のコンボボックス通信
- 20. コンボボックスのWPF追加ボタン
- 21. ポップアップのようなWPFコンボボックス
- 22. c#wpfコンボボックスの選択
- 23. WPFコンボボックスとIsTabStopの動作
- 24. WPF - コンボボックスの複合バインディング
- 25. WPF DataGrid内でコンボボックスのスタイルを設定する方法は?
- 26. Wpfチェックボックスのカラー化
- 27. WPFは、チェックボックス
- 28. MVVM WPFマスター詳細コンボボックス
- 29. WPFコンボボックス奇妙な問題
- 30. WPFコンボボックス選択したアイテム
これは私の問題を解決しなかった、私はIValueConverterにそれを絞り込んだが、私はそこからそれを修正する方法がわからない、今IValueConverterを追加します。 –