Я пытаюсь решить эту проблему уже более часа и не могу понять. Надеюсь, кто-то может понять, что я делаю неправильно.XamlParseException при привязке ComboBox к статически определенному массиву в XAML
У меня есть два отдельных проекта, оба из которых заполняют combobox с массивом парных разрядов в разделе 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>
Другой проект дает мне следующую ошибку:
Cannot convert the value in attribute 'ItemsSource' to object of type 'System.Collections.IEnumerable'. 'System.Windows.Markup.ArrayExtension' is not a valid value for property 'ItemsSource'. Error at object 'System.Windows.Controls.ComboBox' in markup file ...
Я не могу понять, почему это происходит. Я попытался посмотреть схемы, указанные в обоих файлах XAML, но они одинаковы ... У меня нет никаких ошибок или сообщений в окне «Вывод». Я отчаялся и проверил его через FxCop, чтобы узнать, не поймает ли он что-то связанное, и хотя он обнаружил несколько допустимых ошибок, ни одна из них не была связана.
Silverlight или WPF? Это компилируется и работает отлично для меня. –
WPF - спасибо, я добавил тег. Итак, интересно то, что я нашел еще одну запись здесь на SO только минуту назад: http://stackoverflow.com/questions/703510/exception-thrown-when-resources-declaration-order-changed. В нем говорится об изменении порядка декларации в элементе «Ресурсы». Поэтому я сделал это, и теперь у меня другая ошибка, связанная с моим строковым форматированием. WTH? – Dave
Думаю, нам нужно увидеть больше кода - как я уже сказал, ваш образец скомпилирован и отлично работает для меня. VS2008, .NET 3.5 SP1, WPF. –