2009-12-01 4 views

ответ

13
<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> 
1

Да:

<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 }; 
    } 
} 
} 
3

У меня была аналогичная проблема с привязкой массив целых чисел, поступающих из ViewModel в ComboBox. Вот что сработало для меня.

Вот XAML, где мы связывание свойства ArrayOfIntegers к ItemsSource в 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> 

Вот код позади и ViewModel, который обладает свойством 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; } 
    } 
}