MaskedTextBox 扩展 Wpf 工具包
MaskedTextBox Extended Wpf Toolkit
我对来自 Extended Wpf Toolkit 的 MaskedTextBox 有疑问。因此,当我使用它而不是 TextBox 时,会出现错误 - 空引用异常。然后我查找原因,终于找到了。当我将 MaskedTextBox 与 Mask 属性
一起使用时
<xctk:MaskedTextBox
Name="txtMessage"
Value="{Binding Message, UpdateSourceTrigger=PropertyChanged}"
IncludeLiteralsInValue="False"
Mask="(000)000-00-00"
TextBoxBase.TextChanged="txtMessage_TextChanged"
ValueDataType="{x:Type s:String}">
它导致Null Reference Exception
因为UserControl
的DataContext
是null
,但我不知道为什么,[=14=的Constructor
] 有这样的东西:
editModel = new EditViewModel();
DataContext = editModel;
而editModel
是null
。但是当我删除 Mask
属性 时,一切正常。你能帮我吗
问题 是 MaskedTextBox
的 Mask
属性 绑定到 Text
属性 TextBox
。因此,当 Xaml 页面生成时,应用程序尝试将 Mask
属性 绑定到 Message
,但此时 ViewModel
未创建,因此出现 'NullReferenceException'.
解决方法是必须设置MaskedTextBox
的Mask
属性不在Xaml,声明后你的ViewModel
。
editModel = new EditViewModel();
DataContext = editModel;
txtMessage.Mask = "(000)00-000-00-00";
在我的例子中,链接到错过 属性 ValieDataType 的错误,在我在 XAML 中设置这个 属性 之后一切正常。无需通过代码设置掩码。
我对来自 Extended Wpf Toolkit 的 MaskedTextBox 有疑问。因此,当我使用它而不是 TextBox 时,会出现错误 - 空引用异常。然后我查找原因,终于找到了。当我将 MaskedTextBox 与 Mask 属性
一起使用时<xctk:MaskedTextBox
Name="txtMessage"
Value="{Binding Message, UpdateSourceTrigger=PropertyChanged}"
IncludeLiteralsInValue="False"
Mask="(000)000-00-00"
TextBoxBase.TextChanged="txtMessage_TextChanged"
ValueDataType="{x:Type s:String}">
它导致Null Reference Exception
因为UserControl
的DataContext
是null
,但我不知道为什么,[=14=的Constructor
] 有这样的东西:
editModel = new EditViewModel();
DataContext = editModel;
而editModel
是null
。但是当我删除 Mask
属性 时,一切正常。你能帮我吗
问题 是 MaskedTextBox
的 Mask
属性 绑定到 Text
属性 TextBox
。因此,当 Xaml 页面生成时,应用程序尝试将 Mask
属性 绑定到 Message
,但此时 ViewModel
未创建,因此出现 'NullReferenceException'.
解决方法是必须设置MaskedTextBox
的Mask
属性不在Xaml,声明后你的ViewModel
。
editModel = new EditViewModel();
DataContext = editModel;
txtMessage.Mask = "(000)00-000-00-00";
在我的例子中,链接到错过 属性 ValieDataType 的错误,在我在 XAML 中设置这个 属性 之后一切正常。无需通过代码设置掩码。