私はListBoxコントロールと同様に識別できるコントロールを持っています。各項目は1つの要素(TextBlockの例)で表されます。私が望むのは、このアイテムのレイアウトを変更して、2つのTextBlockを含むようにすることです。だから、私はControlTemplateを作成し、境界線グリッド、TwoTextBlocksを入れ、すべてがうまくいきます。今問題:プロパティにバインド拡張を実装します。
私は項目にテキストをローカライズできるようにする必要があり、私は通常、次のようにこれをしなかった:
<... Text="{Binding Strings.SomeString, Source={StaticResource ApplicationResources}}" />
は今、私は両方のテキストブロックと同じことを行うことができるようにする必要があります。だから私はこのアイテムがバインドされるカスタムタイプを作成し、2つのプロパティを公開する必要があると思った:タイトルと説明。このプロパティを文字列型として公開すると、すべて正常に動作しますが、前に使用したマークアップバインディングが失われています。どのように2つのプロパティで同じを達成するには?結果は以下のようにする必要があります:
<... Title="{Binding Strings.SomeString, Source={StaticResource ApplicationResources}}", Description="{Binding Strings.AnotherString, Source={StaticResource ApplicationResources}}" />
私はResourcemManagerクラスでローカライズ作業を行うことができたが、それは実行時に動的に適用されるローカリゼーションを提供するためにも、複雑になります。
上記のコードを使用するには、どうすればよいですか?それから、ApplicationResourceにINotifyPropertyChangedを実装するだけで、すべてが設定されます。
こんにちはdBearを助けることを願っ
は、私が言ってきたように、私はそれを動作させることができたが、私はアプローチが好きではありません場所。私のアプローチは若干異なり、LocalizationResourceという名前の別のプロパティを導入したので、Textにはキーまたはプレーンテキストのみが含まれていました。しかし、それは標準を破るので、まだ、私が好む解決策ではありません。 – Goran