gpt4 book ai didi

wpf - 如何 : Override Metadata for a Dependency Property

转载 作者:行者123 更新时间:2023-12-04 16:27:55 25 4
gpt4 key购买 nike

如何覆盖默认的依赖属性元数据。
例如;文本框的文本属性。
我用这个代码

           class UCTextBox : TextBox
{
public UCTextBox()
{
var defaultMetadata = TextBox.TextProperty.GetMetadata(typeof(TextBox));

TextBox.TextProperty.OverrideMetadata(typeof(UCTextBox),
new FrameworkPropertyMetadata(string.Empty,
FrameworkPropertyMetadataOptions.Journal |
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
defaultMetadata.PropertyChangedCallback,
new CoerceValueCallback(CoerceText)
));
}

private static object CoerceText(DependencyObject d, object value)
{
return value.ToString().Replace(",","");
}

但这在两次运行中(get,set)

没有人能帮我!!!:(((

最佳答案

这是从 TextBox 派生的类的示例覆盖 Text 的元数据属性(property):

using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;

public class MyTextBox : TextBox
{
static MyTextBox()
{
TextBox.TextProperty.OverrideMetadata(typeof(MyTextBox),
new FrameworkPropertyMetadata(string.Empty,
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault |
FrameworkPropertyMetadataOptions.Journal,
null, /* property changed callback */
null, /* coerce value callback */
true, /* is animation prohibited */
UpdateSourceTrigger.LostFocus));
}
}

请注意,覆盖位于 static 中。构造函数,而不是普通的构造函数。

关于wpf - 如何 : Override Metadata for a Dependency Property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7618402/

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