添付された動作に問題があります。 Dependency PropertyにBindingを提供したいが、ViewModelが初期化されるまで値がわからないので、Setterは失敗する。静的クラスで定義された添付プロパティが機能しない
現在、私はこのコードを持っている:
<Style TargetType="{x:Type visi:Chart}">
<Setter Property="att:ChartBehaviour.ExecuteCommandOnDoubleClick" Value="true"/>
<Setter Property="att:ChartBehaviour.ShowHideCommand" Value="{Binding OverviewHideCommand}"/>
</Style>
最初のセッターは完全に正常に動作しますが、OverviewHideCommand
は使用できなくなりますように、第2の1が、ない(すなわちの時点でnull
です。スタイルのアプリケーション)を作成します。
これを回避する方法についてのあらゆる指針はありますか?可能であればxamlにとどまりたいです。
編集:
問題がapperently(クラスがXAML自体とは異なる名前空間にあるが、XAMLは、名前空間を参照)添付プロパティとして定義されるShowHideCommand
の定義である:
public static class ChartBehaviour
{
public static readonly DependencyProperty ShowHideCommandProperty =
DependencyProperty.RegisterAttached("ShowHideCommand",
typeof(ICommand),
typeof(Chart),
new PropertyMetadata(new DefaultCommand()));
}
興味深いことに、プロパティがChart
クラスに表示されていません。どのように私はそれに表示されるための定義を変更する必要がありますか?
あなたはDataTriggerでの等価としか比較できないので、nullと比較するのは難しいでしょう: - /私はカスタムバインディングクラスを見つけましたが、それは少し上にあるようです。 – Femaref
カスタムコンバーター?それは実際には本当に一般的です。私は重量のあるWPFアプリケーションで作業していますが、最も一般的なコンバーターのいくつかは、可視性にブール値であり、NULL(反転パラメーターで)などではありません。 – Brandyn