Reputation: 79
I have a problem with MaskedTextBox that comes from Extended Wpf Toolkit. So, when i use it instead of TextBox there is an error - Null Reference Exception. Then i searched the reason and finally found it. When i use MaskedTextBox with Mask Property
<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}">
it causes Null Reference Exception
because DataContext
of UserControl
is null
, but I don't know why, the Constructor
of UserControl
has something like this:
editModel = new EditViewModel();
DataContext = editModel;
And editModel
is null
. But When I delete Mask
property everything works fine. Can you help me pls.
Upvotes: 1
Views: 2293
Reputation: 91
In my case, the error linked to missed property ValieDataType, after I set up this property in XAML all work fine. No need to setup mask via code.
Upvotes: 0
Reputation: 79
The Problem was that Mask
Property of MaskedTextBox
is bind to a Text
Property of TextBox
. So when Xaml page generates, app tries bind Mask
property to the Message
, but in this moment ViewModel
is not created and so occurs a 'NullReferenceException'.
The Solution is that you must set the Mask
property of MaskedTextBox
not in Xaml, and after declaring your ViewModel
.
editModel = new EditViewModel();
DataContext = editModel;
txtMessage.Mask = "(000)00-000-00-00";
Upvotes: 0