C# IsMaskcompleted有时为空,为什么?
我正在写一份新的WPF表格。我正在使用Extended.Wpf.Toolkit的MaskedTextBox。我正在多重绑定表达式中使用IsMaskCompleted属性。以下是XAML: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
<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;
...