使用IMultiValueConverter时会出现DependencyProperty.UnsetValue

时间:2009-08-25 08:52:29

标签: c# .net wpf converter imultivalueconverter

我创建了一个简单的Converter来连接我的WPF应用程序中的四个TextBox文本。

这是转换器:

public class FourString:IMultiValueConverter
{
     public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
   {

       return string.Format("{0}{1}{2}{3}", values[0], values[1], values[2], values[3]);

   }
   public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
   {


       return new object[] {  };
   }

}

在Xaml中我使用此代码:

<local:FourString x:Key="converter"/>


  <TextBox  Grid.ColumnSpan="4"  Margin="95,7.5,71.25,3.75" Name="CodeBoatTxt" >
                            <TextBox.Text>
                                <MultiBinding Converter="{StaticResource converter}" >
                                    <Binding ElementName="CountryStringaTxt" Path="Text" />
                                    <Binding ElementName="CityStringaTxt" Path="Text" />
                                    <Binding ElementName="ServiceStringaTxt" Path="Text" />
                                    <Binding ElementName="DurationStringaTxt" Path="Text" />

                                </MultiBinding>
                            </TextBox.Text>
                        </TextBox>

在调试时,此错误出现在CodeBoatTxt文本框中:“DependecyProperty.UnsetValue”。

我的转换器出了什么问题?

1 个答案:

答案 0 :(得分:2)

DependencyProperty.UnsetValue有效时,

Binding会传递到转换器,但尚未设置其值。我会单独检查包含Binding MultiBinding的{​​{1}},并确保它们是正确的。