C# IsMaskcompleted有时为空,为什么?

C# IsMaskcompleted有时为空,为什么?,c#,wpf,xceed,C#,Wpf,Xceed,我正在写一份新的WPF表格。我正在使用Extended.Wpf.Toolkit的MaskedTextBox。我正在多重绑定表达式中使用IsMaskCompleted属性。以下是XAML: <Border Grid.Row="1" Grid.Column="1"> <Border.BorderThickness> <MultiBinding Converter="{Static

我正在写一份新的WPF表格。我正在使用Extended.Wpf.Toolkit的MaskedTextBox。我正在多重绑定表达式中使用IsMaskCompleted属性。以下是XAML:

<Border Grid.Row="1" 
        Grid.Column="1">
    <Border.BorderThickness>
        <MultiBinding Converter="{StaticResource multiBoolToThicknessConverter}">
            <Binding ElementName="TargetMaskedTextBox, Path=IsMaskCompleted" />
            <Binding Path="IsTargetCompleted" />
        </MultiBinding>
    </Border.BorderThickness>
    <tk:MaskedTextBox x:Name="TargetMaskedTextBox"
                      Style="{StaticResource LeftAlignMaskedTextBoxStyle}"
                      Value="{Binding Target}"
                      IsEnabled="{Binding IsTargetEnabled}"
                      ValueDataType="{x:Type System:Single}"
                      Mask="\0.0##" />
</Border>

我不明白的是,在填充MaskedTextBox控件的datagrid中选择一行时,IsMaskCompleted通常为空,即使其中包含有效数据。为什么会这样?

您不能假设在第一次调用
Convert
方法时属性已经初始化。稍后将使用实际值再次调用它

您应该检查是否提供了这些值,并且这些值的简单返回不是:

public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
    if (values == null || values.Length < 2 || (values[0] == null && values[1] == null))
        return;
    ...
公共对象转换(对象[]值,类型targetType,对象参数,CultureInfo区域性) { 如果(值==null | |值.长度<2 | |(值[0]==null和值[1]==null)) 回来 ...
可能是因为在调用
Convert
方法时属性尚未初始化。之后不久是否会使用实际值再次调用它?我相信是的。我们的应用程序都是从datagrid中的数据摘要视图开始的,位于选项卡控件的第一个选项卡上。然后,当用户双击一行时,它们不会被发送o选项卡控件的第二个选项卡,在那里他们将看到双击的行的详细视图。在第二个选项卡上,我得到了MaskedTextBox控件。您没有回答我的问题。是的,mm8,很快会再次调用它,并使用从数据库获取的实际值。
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
    if (values == null || values.Length < 2 || (values[0] == null && values[1] == null))
        return;
    ...