سؤال

قمت بإنشاء محول بسيط لتسلسل نص أربعة مربعات في تطبيق WPF الخاص بي.

هنا هو المحول:

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>

عند في تصحيح الأخطاء، يظهر هذا الخطأ في مربع نص BodyBostxt: "dreedecyproperty.unsetvalue".

ما هو الخطأ في محولي؟

هل كانت مفيدة؟

المحلول

DependencyProperty.UnsetValue يتم تمريرها إلى المحول عندما Binding صالحة، ولكن ليس لديك مجموعة قيمتها بعد. أود التحقق من Bindingتضم الخاص بك MultiBinding بمعزل عن العزلة وضمان صحيحة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top