C# WPF布尔依赖属性C
如何创建一个简单的bool依赖属性IsInput。只有在代码中创建类时,才能将该值设置为true或false。看起来很简单,但我在网上到处搜索,还没有找到一个明确的例子 我在网上看到过这样的例子,但我不太清楚我要复制什么才能正确创建自己的bool依赖属性C# WPF布尔依赖属性C,c#,wpf,C#,Wpf,如何创建一个简单的bool依赖属性IsInput。只有在代码中创建类时,才能将该值设置为true或false。看起来很简单,但我在网上到处搜索,还没有找到一个明确的例子 我在网上看到过这样的例子,但我不太清楚我要复制什么才能正确创建自己的bool依赖属性 public static readonly DependencyProperty AncestorProperty = DependencyProperty.Register("Ancestor", typeof(FrameworkE
public static readonly DependencyProperty AncestorProperty =
DependencyProperty.Register("Ancestor", typeof(FrameworkElement), typeof(MyItem),
new FrameworkPropertyMetadata(Ancestor_PropertyChanged));
/// <summary>
/// Event raised when 'Ancestor' property has changed.
/// </summary>
private static void Ancestor_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
MyItem c = (MyItem)d;
c.UpdateHotspot();
}
Register方法的第二个参数是属性的类型,即bool,而第三个参数是所谓的所有者类型,即在下面的示例中声明属性MyControl的类型 对于完整的依赖项属性声明,还需要使用调用依赖项属性的GetValue和SetValue方法的getter和setter来声明包装器属性
public static readonly DependencyProperty IsInputProperty =
DependencyProperty.Register("IsInput", typeof(bool), typeof(MyControl),
new FrameworkPropertyMetadata(IsInputPropertyChanged));
/// <summary>
/// CLR wrapper for the 'IsInput' dependency property.
/// </summary>
public bool IsInput
{
get { return (bool)GetValue(IsInputProperty); }
set { SetValue(IsInputProperty, value); }
}
/// <summary>
/// Callback called when 'IsInput' property has changed.
/// </summary>
private static void IsInputPropertyChanged(
DependencyObject d, DependencyPropertyChangedEventArgs e)
{
bool b = (bool)e.NewValue;
//TODO
}
只需阅读文档就可以了,不确定应该出什么问题。请解释一下好吗?请阅读:ownerType:注册依赖属性的所有者类型。请看,使用实际的所有者类型而不是其他类几乎总是正确的。@Lukazoid实际上,使用任何其他类型都是不正确的。此外,没有理由这样做。如果声明的属性与应用该属性的类型不同,请使用附加属性。@Clemens如果是这样,我将使用附加属性。我认为我的链接上被接受和投票的答案是正确的,只是我从未使用过的东西。