在UWP中使用Combobox SelectedItem和Binding

时间:2016-02-05 17:12:53

标签: c# .net win-universal-app uwp

目前开发的UWP应用程序存在组合框故障。

我将一个ObservableCollection绑定到一个组合框(它可以工作)

var WarehouseList = new ObservableCollection<Warehouse>(taskmag.Result);
        WarehouseBox.ItemsSource = WarehouseList;

我想要做的是在将数据加载到表单时显示选择项。 我没有使用MVVM,这是我的Combox XAML

<ComboBox HorizontalAlignment="Stretch" Width="400" FontSize="32" Name="WarehouseBox" Margin="20,0,0,0">
 <ComboBox.ItemTemplate>
  <DataTemplate>
   <StackPanel Orientation="Horizontal" Width="Auto" Height="Auto">
    <TextBlock Text="{Binding Name}"/>
    <TextBlock Text="{Binding WarehouseID}" Name="MID" Visibility="Collapsed"/>
   </StackPanel>
  </DataTemplate>
 </ComboBox.ItemTemplate>
</ComboBox>

我不知道从哪里开始,因为文档总是暗示MVVM或其他我没有实现的东西。 我愿意将我的项目coll更改为List或IEnumerable,如果它可以帮助解决问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

这是完整的事情,让我知道它是否仍然不适合你:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <ComboBox x:Name="ComboBoxWarehouses">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Width="Auto" Height="Auto">
                        <TextBlock Text="{Binding Name}"/>
                    </StackPanel>
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>
    </Grid>

    public MainPage()
    {
        this.InitializeComponent();
        var items = new ObservableCollection<Warehouse>();
        var item = new Warehouse() {Name = "selected"};
        items.Add(new Warehouse() { Name = "not selected"});
        items.Add(item);
        items.Add(new Warehouse() { Name = "Another Not Selected"});

        ComboBoxWarehouses.ItemsSource = items;
        ComboBoxWarehouses.SelectedItem = item;
    }

page