2017-09-15 10 views
0

に応じて、コンボボックス・アイテムを有効にこの機能は正しく実装されていますか? ComboBoxは、AまたはBが選択されているときに特定の項目のみで構成されます。 必要な動作を得るには、IsMovementSelectableプロパティをどこに配置しましたか? 私はさまざまなアプローチを試みましたが、肯定的な結果につながるものはありません。無効に/私はViewModelには、以下のいる選択

+0

最も簡単な方法は、彼らは私が考えるコンボ – MikeT

+0

に渡される前に、これはその後、無効な値を削除しますコンボの項目ソースをフィルタリングするコレクションビューを使用することです、あなたの概念は間違った方法を行ってきました。 1. string.tolowercaseと 'A'のようなupperCase charを比較します。あなたは同じ値をオンとオフにするため、IsMovementSelectableは最後のデバイスのみに依存します。それぞれのコンボボックスアイテムでIsMovementSelectableを探しています。つまり、これらのアイテムのdataContextが単にenum値であるため、セッターは機能しません。したがって、すべてのアイテムを無効にしたい場合は、単にrelativeSourceを使用してください。異なる項目を有効/無効にしたい場合は、いくつかのことを再設計する必要があります。値とboolプロパティを持つdataModelが必要です。私のコードではもちろんの – sTrenat

+0

私はそれを投稿する前に、コードを編集し、いくつかの不要な部分を削除された...私は(含まれに小文字のみを使用)...私はすでに.ANYのリストをチェックし、あなたの#2に関するいくつかの変更を加えました。 .. for for#3あなたは正しいと思います... – SMa

答えて

0

マイクはあなたがちょうどあなたのコンボボックスで終わるものをフィルタリングする場合のベストは次のようになり、コメントとして、ルックhereを取ります。 CollectionViewだけで簡単に作成し、そこにあなたのItemsSourceをバインドし、あなたが何をする必要があるかの世話をすることができます。

あなたは、あなたの現在のアプローチを維持することができ、かつ可視性プロパティを使用することにより、目的の動作を取得するためにハックを使用を可能性があります

<Setter Property="Visibility" Value="{Binding IsMovementSelectable, Converter={StaticResource BoolToVisibilityConverter}}"/> 

あなたはthis oneのように、BoolToVisibilityConverterコンバータを作成する必要があります。 これはテストされておらず、結果が得られるかもしれないという手掛かりはありませんが、コードを適切に書きたくない、または書き直すことができない場合は、これが役に立つかもしれません。運がよければ、表示されるべきではないアイテムを崩壊させます。

関連する問題