我有一个模态窗口,里面有一些用户信息。我试图让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"/>