私はwpfを初めて使っています。私は解決策を探しています。私の試行された解決策が機能していない理由を説明しています。ResourceDictionaryからusercontrolsへのバインディングスタイル
私の場合です。 私はいくつかのUserControlを持っています。それぞれの場合、私は以下のスタイルを適用します:
<UserControl.Resources>
<Style TargetType="TextBox" BasedOn="{StaticResource Centratura}">
<Setter Property="IsEnabled" Value="{Binding Property1.IsAbilitato}" />
</Style>
</UserControl.Resources>
リソースディクショナリで定義されたスタイルに基づいています。 それはうまく動作します。 しかし、すべてのUserControlについて、前のコードは、Property1.IsAbilitato、Property2.IsAbilitato、Property3.IsAbilitato ...となるバインディングプロパティを除いて同一であることに注意してください。
これはコードの複製です。好きです。私はどのようにリソース辞書にスタイルを配置し、後で適切なバインディングを各usercontrolに適用するのかと思いました。
私はこの方法では、here提案されたもののようなTagプロパティを使用してみました:
私のユーザーコントロールで:
<UserControl x:Class="whatever"
...
Tag="{Binding Property1.IsAbilitato}"
...>
とのResourceDictionaryで:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="TextBox">
<Setter Property="IsEnabled" Value="{Binding Path=Tag, RelativeSource={RelativeSource Self}}" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
</Style>
</ResourceDictionary>
それ動作しません。提案?その他のソリューション? (MVVMを使用しています(該当する場合)。 ありがとうございます。
このリソースファイルをapp.xamlに適用しましたか? –
はい、しました。それは他のもののために働く。 – Nikzeno