XamlParseException عند بيانات Combobox إلى صفيف محدد بشكل ثابت في XAML

StackOverflow https://stackoverflow.com/questions/2159499

سؤال

لقد كنت أحاول حل هذه المشكلة لأكثر من ساعة الآن ، ولا يمكنني اكتشافها. آمل أن يتمكن شخص ما من رؤية ما أفعله خطأ.

لديّ مشروعان منفصلان ، وكلاهما يملأون مجموعة من الزوجين مع مجموعة من الزوجي في قسم UserControl.resources ، ثم البيانات في واجهة المستخدم الرسومية. ما أفعله هو في الأساس فقط هذا ، والذي يعمل بشكل جيد في Kaxaml وفي أحد مشروعي.

<Page>
  <Page.Resources>
    <x:Array x:Key="Increments" Type="sys:Double">
      <sys:Double>0.01</sys:Double>
      <sys:Double>0.02</sys:Double>
      <sys:Double>0.03</sys:Double>
      <sys:Double>0.04</sys:Double>
    </x:Array>
  </Page.Resources>

  <Grid>  
    <ComboBox ItemsSource="{StaticResource Increments}" />
  </Grid>
</Page>

المشروع الآخر يعطيني الخطأ التالي:

لا يمكن تحويل القيمة في السمة "SEMESSORCE" إلى كائن من النوع "system.collections.ienumerform". "system.windows.markup.arrayextension" ليست قيمة صالحة للخاصية "SEMSSOURCE". خطأ في الكائن "system.windows.controls.combobox" في ملف الترميز ...

لا يمكنني معرفة سبب حدوث هذا. لقد حاولت النظر إلى المخططات المشار إليها في كل من ملفات XAML ، لكنها متشابهة ... ليس لدي أي أخطاء أو رسائل في نافذة الإخراج. لقد أصبحت يائسة وقمت بتشغيلها عبر FXCOP لمعرفة ما إذا كان سيحصل على شيء مرتبط ، وعلى الرغم من أنه قد اشتعلت عدة أخطاء صالحة ، إلا أن أيا منها لم يكن مرتبطًا.

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

المحلول

اضطررت إلى لف هذا في ObjectDataprovider للحصول على العمل ، واستبدال StaticResource بربط StaticResource:

<!-- Resources -->
<ObjectDataProvider x:Key="Incs2">
  <ObjectDataProvider.ObjectInstance>
    <x:Array Type="sys:Double">
      <sys:Double>0.01</sys:Double>
      <sys:Double>0.02</sys:Double>
      <sys:Double>0.03</sys:Double>
      <sys:Double>0.04</sys:Double>
    </x:Array>
  </ObjectDataProvider.ObjectInstance>
</ObjectDataProvider>

<!-- Page content -->
<ComboBox ItemsSource="{Binding Source={StaticResource Incs2}}" />

تعديل: لقد وجدت أيضًا أنه إذا قمت بنقل x:Array مورد إلى أعلى قسم الموارد الخاص بي ، قبل أي إعلان موارد آخر, ، يمكنني استخدام الأصل الخاص بك ItemsSource="{StaticResource ...}" ولم أعد أحصل على الاستثناء (أو أحتاج إلى ObjectDataprovider). يبدو أن هذا خطأ في WPF.

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