gpt4 book ai didi

c# - 如何创建一个只读 bool 依赖属性,该属性在其他两个依赖属性之间返回 `And` 操作

转载 作者:行者123 更新时间:2023-11-30 14:03:27 24 4
gpt4 key购买 nike

如何创建自定义只读 bool 依赖属性,返回两个自定义 bool 依赖属性之间的 And 操作,例如 (A, B),

当 A 或 B 发生变化时,我希望触发 result 属性。

任何帮助实现这一目标!

最佳答案

第 1 部分:依赖关系。

public static readonly DependencyProperty Source1Property =
DependencyProperty.Register(
"Source1",
typeof(bool),
typeof(MyControl),
new FrameworkPropertyMetadata(false, new PropertyChangedCallback(UpdateTarget)));

public bool Source1
{
get { return (bool)GetValue(Source1Property); }
set { SetValue(Source1Property, value); }
}

void UpdateTarget(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
MyControl self = (MyControl)d;
d.Target = d.Source1 && d.Source2;
}

第 2 部分:只读

internal static readonly DependencyPropertyKey TargetPropertyKey =
DependencyProperty.RegisterReadOnly(
"Target",
typeof(bool),
typeof(MyControl),
new PropertyMetadata(false));

public static readonly DependencyProperty TargetProperty =
TargetPropertyKey.DependencyProperty;

public bool Target
{
get { return (bool)GetValue(TargetProperty); }
protected set { SetValue(TargetPropertyKey, value); }
}

免责声明:我没有尝试第 2 部分。

第 3 部分:
如果源依赖项属性不是您定义的,您可以执行以下操作:

DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(
MyControl.Source1Property,
typeof(MyControl)));
if (dpd != null)
dpd.AddValueChanged(this, UpdateTarget);

关于c# - 如何创建一个只读 bool 依赖属性,该属性在其他两个依赖属性之间返回 `And` 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4117497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com