Xceed MaskedTextBox ArgumentException

Xceed MaskedTextBox ArgumentException

我最近刚刚重新映像我的机器并重新安装 Visual Studio 2015。

我有一个项目正在对 Xceeds MaskedTextBox 进行调整,而这在重新安装之前并未发生。

在我的 XAML:

 <xctk:MaskedTextBox x:Name="Mtb" PreviewMouseDown="MaskedTextBox_PreviewMouseDown" Mask="(###) ###-####" Value="{Binding SearchNumber}"
                                    ValueDataType="{x:Type s:String}" Height="29" IncludeLiteralsInValue="False" Width="186" FontSize="16"  AutoMoveFocus="True"  Style="{DynamicResource MaskedTextBoxStyle}">

现在,在设计器中我收到“ArgmentException:值表示 'SearchNumber' 与掩码不匹配。参数 name:value。

项目仍然正常构建和运行,但是,当 MaskedTextBox 存在时,设计会抛出异常。

有人看过吗?我已经提交给 Microsoft,因为我认为这可能是一个 Visual Studio 问题,但我想看看是否有其他人偶然发现了这个问题并找到了解决方案,或者可以提供一些东西让我尝试。

我在 Extended.Wpf.Toolkit from NuGet 的 2.6.0 版本中发现了这个问题。这绝对不是 Microsoft 的问题。我正在使用 MVVMLight 并在构造函数中为我的视图模型设置一些设计时数据。

事实证明,我合法设置的数据不符合掩码 - 我的掩码用于 SSN (123-45-6789),我分配给绑定值的值是“1234567890”或“123” -45-67890”。更改我的构造函数中的值以匹配预期的掩码长度解决了我的问题。

原来问题出在我的 DesignInstance 是否被标记为 DesignTimeCreateable。

改变这个: d:DataContext="{d:DesignInstance ViewModel:TextServiceHandler}"

为此: d:DataContext="{d:DesignInstance ViewModel:TextServiceHandler, IsDesignTimeCreatable=True}"

问题已解决。我不需要为绑定 属性 指定默认值。似乎 Toolkit 不喜欢在设计时未创建实例时的绑定。我也会将其发布到 Xceed 论坛。