将组合框的 ItemsSource 设置为整数数组?

发布于 2024-08-12 19:45:01 字数 33 浏览 3 评论 0原文

将组合框的 ItemsSource 设置为整数数组?

Set ItemsSource of a ComboBox to an Array of Integers?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ぶ宁プ宁ぶ 2024-08-19 19:45:01
<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>
<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>
梨涡少年 2024-08-19 19:45:01

我在将来自 ViewModel 的整数数组绑定到 ComboBox 时遇到了类似的问题。
这对我有用。

这是 XAML,我们将属性 ArrayOfIntegers 绑定到 ComboBox 的 ItemsSource

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

这是隐藏的代码以及具有属性 ArrayOfIntegers 的 ViewModel

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

I had a similar problem with binding an array of integers coming from a ViewModel to the ComboBox.
Here what worked for me.

Here is XAML, where we are binding the property ArrayOfIntegers to ItemsSource of the 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>

Here is the code behind and the ViewModel which has the property 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; } 
    }
}
变身佩奇 2024-08-19 19:45:01

是的:

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

Yes:

<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 };
    }
}
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文