我有兩個用戶控件(IconUserControl & DisplayUserControl),我在與結合依賴屬性的問題,這裏的一些細節:問題與一個用戶控件綁定依賴項屬性
- IconUserControl具有IsDisplayShown的布爾DP
- DisplayUserControl有IsDisplayShown
一個布爾值DP在XAML我:
<local:DisplayUserControl
x:Name="DisplayUserControl"
IsDisplayShown="{Binding ElementName=IconUserControl, Path=IsDisplayShown, Converter={StaticResource DummyConverter}}" />
<local:IconUserControl
x:Name="IconUserControl" />
當IconUserControl.IsDisplayShown設置爲true,我可以在這個值獲得通過的DummyConverter看到,但它從來沒有設置DisplayUserControl.IsDisplayShown。
但是,如果在代碼隱藏的查看我設置DisplayUserControl.IsDisplayShown = true;
,然後正常工作。
我DataContext的兩個用戶控件在構造函數「這個」設置。我試圖擺弄綁定的「模式」屬性。
*注:DummyConverter剛剛返回值,我只有這證實結合是努力工作。
我在做什麼錯?
編輯:
這裏有兩個DPS:
public bool IsDisplayShown
{
get { return (bool)GetValue(IsDisplayShownProperty); }
set { SetValue(IsDisplayShownProperty, value); }
}
public static readonly DependencyProperty IsDisplayShownProperty =
DependencyProperty.Register("IsDisplayShown", typeof(bool), typeof(IconUserControl), new UIPropertyMetadata(false));
public bool IsDisplayShown
{
get { return (bool)GetValue(IsDisplayShownProperty); }
set
{
if (value)
ShowOpenItems();
else
HideOpenItems();
SetValue(IsDisplayShownProperty, value);
}
}
public static readonly DependencyProperty IsDisplayShownProperty=
DependencyProperty.Register("IsDisplayShown", typeof(bool), typeof(DisplayUserControl), new UIPropertyMetadata(false));
權。而且,您實際上只能打開擴展跟蹤以進行特定綁定。 –
感謝您的診斷,這很好,它會派上用場。但是,診斷並沒有告訴我這個問題。 診斷中的最後一項是......「TransferValue - 使用最終值'True'」......這是你期望看到的,爲什麼沒有通過實際屬性仍然是個謎。如何在實際DP上設置診斷,以便我可以看到發生了什麼? –
您可以將更改的事件添加到DP聲明中。看看http://serialseb.blogspot.com/2007/08/wpf-tips-5-receive-notifications-for.html的例子,然後你可以設置一個斷點,等等。 –