Impostare ItemsSource di un ComboBox su una matrice di numeri interi?
-
22-07-2019 - |
Domanda
Impostare ItemsSource di un ComboBox su una matrice di numeri interi?
Soluzione
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Window.Resources>
<x:Array x:Key="Integers" Type="{x:Type sys:Int32}">
<sys:Int32>0</sys:Int32>
<sys:Int32>1</sys:Int32>
<sys:Int32>2</sys:Int32>
</x:Array>
</Window.Resources>
<ComboBox ItemsSource="{Binding Source={StaticResource Integers}}" />
</Window>
Altri suggerimenti
Ho avuto un problema simile con l'associazione di un array di numeri interi provenienti da un ViewModel al ComboBox. Ecco cosa ha funzionato per me.
Ecco XAML, dove stiamo associando la proprietà ArrayOfIntegers
a ItemsSource
del ComboBox
<Window x:Class="POpUpWindow.comboBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="comboBox" Height="300" Width="300">
<Grid>
<ComboBox x:Name="combox" IsReadOnly="True"
VerticalAlignment="Center" SelectedIndex="0"
ItemsSource="{Binding ArrayOfIntegers}">
</ComboBox>
</Grid>
</Window>
Ecco il codice dietro e ViewModel che ha la proprietà ArrayOfIntegers
public partial class comboBox : Window
{
private ViewModel mViewModel = new ViewModel();
public comboBox()
{
InitializeComponent();
this.DataContext = mViewModel;
}
}
public class ViewModel : ViewModelBase
{
public ViewModel()
{
ArrayOfIntegers = new int[]{4, 6, 9};
}
private int[] mArrayOfIntegers = new int[3];
public int[] ArrayOfIntegers
{
get { return mArrayOfIntegers; }
set { mArrayOfIntegers = value; }
}
}
Si
<Window x:Class="IntArrayItemsSource.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<ComboBox ItemsSource="{Binding}"/>
</Grid>
</Window>
namespace IntArrayItemsSource {
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1: Window {
public Window1() {
InitializeComponent();
this.DataContext = new int[] { 1, 2, 3, 4, 5, 6, 7 };
}
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow