WPF MVVM-Light ComboBox并加载所选项目

时间:2014-08-20 01:08:24

标签: wpf combobox wpf-controls mvvm-light

我有一个模态窗口,里面有一些用户信息。我试图让ComboBoxes根据此Window绑定的对象的ID自动选择一个值。我已经尝试过在Stack上看到的所有内容,但没有任何效果。我可以将SelectedIndex设置为硬编码值,但除非ID按数字顺序(1,2,3,4)进行,否则它不起作用。

这是我的ComboBox xaml:

  <ComboBox DataContext="{Binding Truck, Source={StaticResource Locator}}" 
            ItemsSource="{Binding Trucks}" 
            SelectedValue="{Binding DataContext.Driver.TruckId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" 
            SelectedValuePath="Id" 
            DisplayMemberPath="TruckNumber"/>

如您所见,我从另一个VM中提取了一个ObservableCollection对象,因此我引用了需要找到的Windows DataContext。我无法弄清楚如何设置组合框,以便所选卡车是已经返回的Driver.TruckId。其他信息显示在文本区域中,因此我知道数据存在,并且我没有收到绑定错误。

编辑:我甚至更奇怪的是,我只是使用了这个并且它有效并且我的变量名称被正确写入,所以这真的很混乱,上面的另一个例子也使用了一个int。

 <ComboBox DataContext="{Binding DriverStatus, Source={StaticResource Locator}}"
           ItemsSource="{Binding DriverStatuses}" 
           SelectedValue="{Binding DataContext.Driver.StatusId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}}" 
           SelectedValuePath="Id" 
           DisplayMemberPath="Name"/>

0 个答案:

没有答案