UWP ComboBox 不显示绑定项

UWP ComboBox not showing Bound item

我有一个包含 Int32 对象集合的组合框。 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。

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

我不是 100% 确定,但您正在用 <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>
    ...