【发布时间】:2013-03-06 18:30:50
【问题描述】:
我在我的 WPF 用户控件上创建了一个依赖属性,该属性将数据绑定在我的父用户控件中。我已经在我的视图模型上实现了INotifyPropertyChanged,以便在值更改时发送通知。
用户控制代码:
public bool IsVisibile {
get { return (bool) GetValue(IsVisibileProperty); }
set { SetValue(IsVisibileProperty, value); }}
public static readonly DependencyProperty IsVisibileProperty =
DependencyProperty.Register("IsVisibile", typeof(bool), typeof(UserControl),
new PropertyMetadata(default(bool), VisiblePropertyChangedCallback));
private static void VisiblePropertyChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
if (dependencyPropertyChangedEventArgs.NewValue != null)
{
((UserControl) dependencyObject).IsVisibile = (bool) dependencyPropertyChangedEventArgs.NewValue;
}
}
父用户控制用法:
<uc:UserControl IsVisible="{Binding IsViewModelVisible, UpdateSourceTrigger=PropertyChanged}"
如果“IsViewModelVisible”发生更改,则不会调用属性更改事件处理程序并且不会刷新属性。
有什么想法吗?
【问题讨论】:
标签: wpf user-controls dependency-properties