【发布时间】:2011-01-04 08:06:19
【问题描述】:
我有两个用户控件(IconUserControl 和 DisplayUserControl),我在绑定依赖属性时遇到问题,这里有一些细节:
- IconUserControl 的布尔 DP 为 IsDisplayShown
- DisplayUserControl 的布尔 DP 为 IsDisplayShown
在 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; 的视图的代码隐藏中,它可以正常工作。
我在构造函数中将两个 UserControls 的 DataContext 设置为“this”。我试图摆弄绑定的“模式”属性。
*注意:DummyConverter 只是返回值,我只有这个来确认 Binding 正在尝试工作。
我做错了什么?
编辑:
这是两个 DP:
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));
【问题讨论】:
标签: wpf xaml binding dependency-properties