0

MVVP パターンを使用して、Windows ストア (別名 Metro) と WPF アプリケーションの間でほとんどのコードを共有しています。コントロールの 1 つは、ビュー モデル メンバーの状態によって制御される可視性を持っています。

Visibility="{Binding Path=IsServiceSelected, 
            Mode=TwoWay, 
            Converter={StaticResource BoolToVisibility}}" 

プロパティ「IsServiceSelected」は、データ コンテキストの背後にあるビュー モデルで定義されます。デザイナーのみが使用する一部のデータを含む偽のビュー モデルがあります。このフェイク モデルのプロパティ IsServiceSelected は "true" と評価されます (このプロパティにはメンバー フィールドがなく、他のデータに基づいて計算されます)。これは、WPF アプリケーションでは正常に機能します。コントロールの可視性が Visible であることがわかります。ただし、Windows ストア アプリの場合、コントロールの可視性は設計時に常に折りたたまれ、実行時にのみ正しく評価されます。

XAML 定義をConverterParameter=Trueで拡張すると、コントロールが表示されるため、正しく評価されないのは明らかに "IsServiceSelected" の値です。しかし、奇妙なのは、モデル、ビュー モデル、およびその特定の偽のビュー モデルに同じコード (ポータブル クラス ライブラリ内) を共有しているため、異なるプラットフォームで同じ値に評価する必要があることです。しかし、そうではありません。

更新誤報、問題は私のコードにありました。修理済み。

4

1 に答える 1