UWP ComboBox未显示绑定项目

时间:2016-02-14 15:27:21

标签: c# combobox win-universal-app

我有一个包含Int32对象集合的Combobox。 ComboBox SelectedItem绑定到Int32。

            <ComboBox>
                <ComboBox.SelectedItem>
                    <Binding Path="MidiChannel" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" />
                </ComboBox.SelectedItem>
                <ComboBox.Items>
                <ComboBoxItem>
                    <x:Int32>0</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>1</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>2</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>3</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>4</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>5</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>6</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>7</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>8</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>9</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>10</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>11</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>12</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>13</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>14</x:Int32>
                </ComboBoxItem>
                <ComboBoxItem>
                    <x:Int32>15</x:Int32>
                </ComboBoxItem>
                </ComboBox.Items>

            </ComboBox>

MidiChannel属性实现了INotifyPropertyChanged。

无论我尝试什么组合,使用SelectedValue而不是SelectedItem切换集合和SelectedItem。 ComboBox不会在UI中显示SelectedItem。输出没有显示任何绑定错误,我已检查Int32是否存在于类中。如何让ComboBox显示我的Int32?

1 个答案:

答案 0 :(得分:1)

我不是百分百确定,但是您使用<ComboboxItem>元素填充了您的列表。 您的属性应该属于该类型(最好不要)或者您的Path应该反映ComboboxItem.Content或其他内容。

总而言之,使用ItemSource属性并让ViewModel提供整数列表要容易得多(更好)。一个简单的数组或List<int>就足够了。

如果您确实想使用XAML,请尝试省略包装器:

  <ComboBox.Items>
    <x:Int32>0</x:Int32>
    <x:Int32>1</x:Int32>
    <x:Int32>2</x:Int32>
    ...