1

WPF アプリケーションに [編集] ボタンを追加する必要があるフォームがあります。現在、フォームは常に編集モードであり、「表示モード」はありません。ただし、さまざまな理由から、ユーザーが [編集] ボタンをクリックするまでコントロールをビュー モードのままにし、編集ボタンを非表示にしてその場所に [保存] ボタンを表示する必要があります。

DependencyProperty私のフォームには既にというboolCanModifyがあります。これは、フォームに表示されているレコードを編集する権限がユーザーの権限によって与えられている場合に当てはまります。DependencyPropertyと呼ばれる新しいブール値を追加してInEditModeいます。これはデフォルトで false になります。ボタンの非表示と有効化は非常に簡単ですがComboBox、ユーザーがレコードを編集できない場合、または編集可能でフォームが表示モードの場合に非表示にするコントロールがあります。そのためには、2 つの bool プロパティを AND 演算した結果を変換してから、Visibility値に変換する必要があります。

IValueConverterbool を実装して に変換するクラスを既に持っていVisibilityます。IMultiConverterブール値の配列を取り、それらを ANDS (またはパラメーターの値に応じて OR) するを実装するクラスを作成しました。

私がやりたいのは、 の結果を取得し、IMultiConverterそれを に通してIValueConverter結果を に変換することVisibilityです。それをしてもいいですか?または、コードビハインドで AND を new に実行したほうがよいでしょうDependencyPropertyか?

トニー

4

3 に答える 3

2

確かにコンバーターをチェーンすることはできます。私自身の例ではまだMultiValueConvertersを扱っていませんが、を実装するのはそれほど難しいことではありませんLinkedMultiValueConverter。このアプローチの欠点の1つは、現在提供されている属性を使用する必要があるコンバーターを再作成する必要があることです。

git://github.com/pmacn/ValueConverters.WP8.git

また

https://github.com/pmacn/ValueConverters.WP8

そして、あなたは次のことをします

<con:LinkedConverter x:Name="MyFancyLinkedConverter">
    <con:BooleanInversionConverter />
    <con:BooleanToVisibilityConverter />
</con:LinkedConverter>
于 2013-02-13T17:28:12.170 に答える
1

コンバーターをチェーンすることはできません。

代わりに、MultiValueConverterを変更して、文字列パラメーター「bool」または「visibility」を取得します。パラメータに応じて、boolオブジェクトまたは可視性オブジェクトのいずれかを返します

于 2012-05-23T21:33:03.220 に答える
0

コンバーターを連鎖させることはできないため、クラスに別のブール型プロパティを追加しました。新しいプロパティが依存する 2 つのプロパティに、変更時に呼び出されるメソッドを追加しました。これらは、新しいプロパティの値を再計算します。次に、元のブール値から可視性へのコンバーターを使用して、問題のコントロールを表示または非表示にしました。

于 2012-05-24T14:06:15.053 に答える