2

TextBlockバインドされたブール値でs トグル ( one Visible、もう一方Collapsed、およびその逆)のペアを作成しようとしています。

私はBooleanToVisibilityConverter1 つを使用できますが、! を行うことはできません。UniversalConverterもう1つは、ラムダを受け取るMVVMライトを使用しようとしていConverterParameterます。

問題は、使用例が見つからず、試みが失敗することです。

XAML リソースで宣言しました。

<Window.Resources>
    <ex:UniversalConverter x:Key="UniversalConverter" />
</Window.Resources>

そして、これをに追加しましたTextBlock

<TextBlock Visibility="{Binding Path=ShowA, Converter={StaticResource universalConverter}, ConverterParameter='b=>b?Visible:Collapsed'}">A</TextBlock>
<TextBlock Visibility="{Binding Path=ShowA, Converter={StaticResource universalConverter}, ConverterParameter='b=>b?Collapsed:Visible'}">B</TextBlock>

これにより、XAML デザイン ウィンドウで例外がスローされます: Unknown identifier 'Visible'.

また、UniversalConverter のメソッド コメントb=>b?Visibility.Visible:Visibility.Collapsedの例を試してみました。ConvertそれはスローしUnknown identifier 'Visibility'ます。

に必要な参照を追加するにはどうすればよいUniversalConverterですか?

4

2 に答える 2

2

正直なところ、私はUniversalConverter優れた MVVM Light ツールキット フレームワークのクラスを使用したことがないため、「どのように機能させるか」という特定の質問に答えることができません。

ただし、実際の問題を解決するために、 true/false と Visible/Collapsed の間のマッピングを反転BooleanToVisibilityConverterできる独自のものを作成できます。BooleanToVisibilityConverter を反転するにはどうすればよいですか? を参照してください。例えば。

UniversalConverter個人的には、多くの理由でを使用することを本当に避けたいと思います:

  • あなたが今知っているように、文書化されていません
  • XAML の主な目的ではない、XAML でプログラミング ロジックを記述することを強制する.
  • ...デバッグできないC#コード行を強制的に記述します(少なくともVS2010 + .Net 4の場合)。これは、このコンバーターが間違ったアプローチであることを意味しますIMHO
于 2012-07-26T12:22:22.903 に答える
0

UniversalConverter2013年から削除されたようです

http://blog.galasoft.ch/posts/2013/01/mvvm-light-v4-1-26-change-log/

BL0023.004、UniversalConverter を削除

于 2016-11-21T12:57:54.757 に答える