我正在尝试获取并设置DependencyProperty。 DependencyProperty用于描述正则表达式语句的掩码,用于控制文本框中的用户输入。有问题的代码如下:
public string Mask
{
get { return (string)GetValue(MaskProperty); }
set { SetValue(MaskProperty, value); }
}
public static readonly DependencyProperty MaskProperty =
DependencyProperty.Register("Mask", typeof(string), typeof(MaskTextBox), new PropertyMetadaa(string.Empty));
除了GetValue和SetValue之外,所有似乎都在工作。现在,我知道我可以使用System.Workflow命名空间来使这些工作,但我也知道命名空间已经过时,所以我宁愿不使用它。
似乎System.Activities命名空间被设计为System.Workflow的最新替代品,所以考虑到这一点,是否有一个System.Activities替代GetValue和SetValue方法?如果没有,那么这些方法的有效替代方案是什么?
答案 0 :(得分:2)
任何应包含在WPF绑定机制中的类都需要从DependencyObject或其子类之一派生:
System.Object System.Windows.Threading.DispatcherObject System.Windows.DependencyObject System.Windows.ContentElement System.Windows.Controls.DataGridColumn System.Windows.Controls.GridViewColumn System.Windows.Controls.Ribbon.Primitives.StarLayoutInfo System.Windows.Controls.TextSearch System.Windows.Controls.ViewBase System.Windows.Data.BindingGroup System.Windows.Data.CollectionContainer System.Windows.Data.CollectionViewSource System.Windows.Freezable System.Windows.Ink.GestureRecognizer System.Windows.Media.Media3D.Visual3D System.Windows.Media.Visual System.Windows.Navigation.JournalEntry System.Windows.TriggerAction System.Windows.TriggerBase System.Windows.VisualState System.Windows.VisualStateGroup System.Windows.VisualStateManager System.Windows.VisualTransition
(WPF使用进一步派生的WPF,比如TextBox等 - 它们在UIElement / FrameWorkElement之下。)
DependencyObject提供了实现DependencyPropertys所需的GetValue / SetValue方法。
你不能简单地将DependencyProperty放在Winforms-Class中并认为它会起作用 - 你可以做到,但它不会。基础管道根本就不存在。