Я ищу высоко и низко и не могу найти ответ на этот вопрос. У меня два вопроса
- Как создать массив или коллекцию в XAML. У меня есть массив, который я хочу вставить туда и связать со списком. Моей первой идеей было поместить ItemsControl в словарь ресурсов, но ItemsSource в поле со списком ожидает IEnumerable, чтобы он не работал.
Вот что я попробовал в своем словаре ресурсов, и ни один из них не работает
<ItemsControl x:Key="stateList">
<sys:String>AL</sys:String>
<sys:String>CA</sys:String>
<sys:String>CN</sys:String>
</ItemsControl>
<ItemsControl x:Key="stateList2">
<ComboBoxItem>AL</ComboBoxItem>
<ComboBoxItem>CA</ComboBoxItem>
<ComboBoxItem>CN</ComboBoxItem>
</ItemsControl>
и вот как я к нему привязываюсь
<ComboBox SelectedValue="{Binding Path=State}" ItemsSource="{Binding Source={StaticResource stateList2}}" >
</ComboBox>
РЕДАКТИРОВАТЬ: ОБНОВЛЕНО
Я получил эту первую часть, чтобы работать таким образом
<col:ArrayList x:Key="stateList3">
<sys:String>AL</sys:String>
<sys:String>CA</sys:String>
<sys:String>CN</sys:String>
</col:ArrayList>
Однако я бы предпочел не использовать список массивов, я бы хотел использовать общий список, поэтому, если кто-нибудь знает, как, пожалуйста, сообщите мне.
РЕДАКТИРОВАТЬ ОБНОВЛЕНИЕ: Я полагаю, что XAML имеет очень ограниченную поддержку непатентованных средств, поэтому, возможно, список массивов - лучшее, что я могу сделать на данный момент, но я все же хотел бы получить помощь по второму вопросу, если у кого-то есть anser
второй. Я пытался ссылаться на словарь объединенных ресурсов в своем XAML, и у меня были проблемы, потому что в Window.resources у меня было больше, чем просто словарь, поэтому мне потребовалось добавить x: Key. Когда я добавляю ключ, система больше не может найти элементы в моем словаре ресурсов. Вместо этого мне пришлось переместить объединенный словарь в Grid.Resources. В идеале я хотел бы сослаться на объединенный словарь в app.xaml, но у меня та же проблема
Вот пример кода. Эта первая часть требует x: key для компиляции, потому что у меня есть конвертер, и он жаловался, что у каждого элемента должен быть ключ, если существует более одного
<UserControl.Resources>
<win:BooleanToVisibilityConverter x:Key="VisibilityConverter" />
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ResourcesD.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
Мне пришлось изменить это на
<UI:BaseStep.Resources>
<win:BooleanToVisibilityConverter x:Key="VisibilityConverter" />
</UI:BaseStep.Resources>
<Grid>
<Grid.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/ResourcesD.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
</Grid>
Спасибо