1

私の Windows Phone 8 C#/XAML .NET 4.5 アプリでは、ViewModel のデータバインディングを使用していますが、これは正常に動作しています。

私が望むのは、LocalizedResources からのローザライズされた文字列が、次の場合にボタンのコンテンツとして表示されることです。

  • バインディングによって返される値はnull

  • バインディングを解決できませんでした

これはどのように達成できますか?

私がやろうとしたことは次のとおりです。

TargetNullValue(やり方は同じなので割愛)

(プレゼンテーションの目的で、リソースを Applicationtitle に設定します)

<Button ... Content="{Binding Something, FallbackValue={Binding Path=LocalizedResources.ApplicationTitle, Source={StaticResource LocalizedStrings}}}" ... />

しかし、私が得るのはテキストのようなものですSystem.Windows.Text.Data.Binding...(画面の外にあるため、これ以上読むことはできません)。

いくつかのグーグル/「スタックオーバーフロー」を行い、WP7の値コンバーターで何かを見つけたので、少し戸惑いました。

(そして、タグ/値に適切な「プロパティ」を「プロパティ」に追加するだけではこれが解決されない気がしたので、C#タグを追加しましたが、そうしていただければ幸いです)

4

1 に答える 1

1

FallbackValue にバインディングを適用できないことは確かです。非常に簡単な回避策は、'Something' プロパティ内で null をチェックすることです。

private string _something;

public string Something
{
    get { return _something ?? AppResources.ApplicationTitle; }
    set
    {
        _something = value;
        OnPropertyChanged("Something");
    }
}
于 2013-10-18T02:59:01.570 に答える