Qual é a boa maneira de representar uma lista de opções para uma caixa de combinação ou caixa de listagem em XAML?
Pergunta
Qualquer coisa é mais compacto (ou de outra forma melhor do que)
<x:Array x:Key="titles" Type="System:String">
<System:String>Mr.</System:String>
<System:String>Mrs.</System:String>
<System:String>Ms.</System:String>
</x:Array>
?
Solução
Sem código que é o mais concisa possível AFAIK.
Outras dicas
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<XmlDataProvider x:Key="Lookups">
<x:XData>
<ComboBoxItems xmlns="">
<Salutations>
<Item>Mr.</Item>
<Item>Mrs.</Item>
<Item>Ms.</Item>
</Salutations>
<States>
<Item>AL</Item>
<Item>AK</Item>
<Item>CA</Item>
<Item>CT</Item>
</States>
<Wizards>
<Item>Gandalf</Item>
<Item>Radagast</Item>
<Item>Pallando</Item>
<Item>Saruman</Item>
</Wizards>
</ComboBoxItems>
</x:XData>
</XmlDataProvider>
</Page.Resources>
<StackPanel>
<ComboBox ItemsSource="{Binding Source={StaticResource Lookups}, XPath=ComboBoxItems/Salutations/*}"/>
<ComboBox ItemsSource="{Binding Source={StaticResource Lookups}, XPath=ComboBoxItems/States/*}"/>
<ComboBox ItemsSource="{Binding Source={StaticResource Lookups}, XPath=ComboBoxItems/Wizards/*}"/>
</StackPanel>
</Page>
Uma vantagem dessa abordagem é que você pode manter os itens completamente separadamente do XAML se você precisa -. Você pode armazená-los em um documento XML externo e carregar o XmlDataProvider
em tempo de execução se você precisa
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow