1

XAMLで次のように整数配列を作成しました。

 <x:Array Type="{x:Type sys:Int16}" x:Key="intervals">
        <sys:Int16>1</sys:Int16>
        <sys:Int16>2</sys:Int16>
        <sys:Int16>3</sys:Int16>
 </x:Array>

ViewModelにIntervalという名前の整数プロパティがあります。このIntervalプロパティをComboBoxのSelectedValueプロパティにバインドしようとしています。ただし、ComboBoxには、Intervalプロパティの値に対応する選択された値は表示されません。これは私のComboBoxXAMLコードです。

 <ComboBox SelectedValue="{Binding Path=Interval}" Height="25" ItemsSource="{StaticResource intervals}" HorizontalContentAlignment="Center" Margin="78,47,237,128" Name="comboBox1" VerticalContentAlignment="Center" Width="85" />
4

2 に答える 2

3

こんにちは、SelectedVlueにはSelectedValuePathも指定する必要があるため、SelectedValueの代わりにSelectedItemを試す必要があります。

public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }
    public Int16 Interval { get; set; }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        var a = Interval;
    }
}

 <Window.Resources>
    <x:Array Type="{x:Type sys:Int16}" x:Key="intervals">
        <sys:Int16>1</sys:Int16>
        <sys:Int16>2</sys:Int16>
        <sys:Int16>3</sys:Int16>
    </x:Array>
</Window.Resources>

    <Grid x:Name="LayoutRoot">
    <StackPanel>
        <ComboBox SelectedItem="{Binding Path=Interval}" Height="25" ItemsSource="{StaticResource intervals}" HorizontalContentAlignment="Center" Margin="78,47,237,128" Name="comboBox1" VerticalContentAlignment="Center" Width="85" />
        <Button Content="ok" Click="Button_Click"/>
    </StackPanel>
</Grid>

これがお役に立てば幸いです。

于 2013-02-24T12:33:57.423 に答える
2

short値の配列を作成しました。その場合、プロパティIntervalもタイプである必要がありますshort

public short Interval { get; set; }

intアイテムタイプとして使用する場合sys:Int32は、配列要素タイプとして使用する必要があります。


また、SelectedItemプロパティをバインドする必要があります。あなたの場合は機能しますSelectedValueが、と組み合わせて機能することを目的としていSelectedValuePathます。

<ComboBox SelectedItem="{Binding Path=Interval}" ... />
于 2013-02-24T12:29:57.240 に答える