我有一個ViewModel,它有一個集合和一個屬性,表示集合中的選定值。在我看來,這是顯示在一個組合框。當「填充」我的ViewModel時,選定的項目不會顯示在我的視圖中。ComboBox中所選屬性未顯示
我的視圖模型
public class DriverViewModel : MasterDataWithAddressViewModel<Driver>
{
public ObservableCollection<Vehicle> Vehicles
{
get { return _vehicles; }
set
{
if (_vehicles != value)
{
_vehicles = value;
RaisePropertyChanged("Vehicles");
}
}
}
public Vehicle SelectedVehicle
{
get { return PrimaryModel.Vehicle; }
set
{
if (PrimaryModel.Vehicle != value)
{
PrimaryModel.Vehicle = value;
RaisePropertyChanged("SelectedVehicle");
}
}
}
}
的SelectedVehicle
設置器正確調用,所以是RaisePropertyChanged("SelectedVehicle");
...
我的ComboBox
<ComboBox DisplayMemberPath="Number"
ItemsSource="{Binding Vehicles, UpdateSourceTrigger=PropertyChanged}"
SelectedValue="{Binding SelectedVehicle, UpdateSourceTrigger=PropertyChanged}" />
我也嘗試過那樣:
<ComboBox DisplayMemberPath="Number"
ItemsSource="{Binding Vehicles, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedVehicle, UpdateSourceTrigger=PropertyChanged}"
IsSynchronizedWithCurrentItem="True" />
通過「手動」(通過視圖)在ComboBox中選擇一個值沒有問題。通過在代碼中「填充」ViewModel來做到這一點是行不通的。
任何人都可以幫忙嗎?
如果Set被調用,Get不是,那麼你需要看看RaisePropertyChanged – Paparazzi