我遇到了一些附加行爲的問題。我想提供一個綁定到一個依賴項屬性,但該值在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
將不可用(即是在null
的點。樣式應用程序),直到構建後臺對象。
任何關於如何解決這個問題的指針?如果可能,我真的很想留在xaml中。
編輯:
問題apperently處於ShowHideCommand
的定義中,這是(類是在不同的命名空間比XAML本身,而是XAML引用命名空間)定義爲附加屬性:
public static class ChartBehaviour
{
public static readonly DependencyProperty ShowHideCommandProperty =
DependencyProperty.RegisterAttached("ShowHideCommand",
typeof(ICommand),
typeof(Chart),
new PropertyMetadata(new DefaultCommand()));
}
有趣的是,該物業並沒有出現在Chart
類。我應該如何改變它的出現在其中的定義?
你只能比較DataTrigger上的相等性,所以它會很難與非null比較: - /我找到了一個自定義綁定類,但看起來有點超過頂部。 – Femaref 2010-12-11 18:15:19
自定義轉換器?這其實很常見。我正在開發一個重量級的WPF應用程序,其中一些最常見的轉換器布爾型爲可見性,而不是null(帶有反轉參數)等。 – Brandyn 2010-12-14 13:29:29