Nic*_*eon 6 wpf dependency-properties
我在我的usercontrol中定义了属性,如下所示:
public bool IsSelected
{
get { return (bool)GetValue(IsSelectedProperty); }
set
{
SetValue(IsSelectedProperty, value);
StackPanelDetails.Visibility = value ? Visibility.Visible : Visibility.Collapsed;
}
}
public static readonly DependencyProperty IsSelectedProperty =
DependencyProperty.Register("IsSelected", typeof (bool), typeof (ucMyControl));
Run Code Online (Sandbox Code Playgroud)
但是当我在xaml中设置它的属性时,它想要触发它(set不被调用).
<DataTemplate><local:ucTopicItem IsSelected="False" /></DataTemplate>
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
Cle*_*ens 11
在XAML中设置DP时,WPF不会调用DependencyProperty的setter.WPF将直接设置DependencyProperty.
有关未调用setter的原因,请参阅MSDN XAML加载和依赖性属性.
您应该直接在依赖项属性中使用属性更改处理程序.这样,您可以确保在XAML中设置时调用它:
public static readonly DependencyProperty IsSelectedProperty =
DependencyProperty.Register("IsSelected", typeof(bool), typeof(ucMyControl), new PropertyMetadata(false, OnIsSelectedChanged));
private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// Implement change logic
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3470 次 |
| 最近记录: |