使用 ModelViewViewModel 的组合框中的默认值
Default Value in a Combobox using ModelViewViewModel
我想在此组合框中设置一个默认值。 ItemsSource 包含两个元素。当我打开包含我的组合框的 window 时,我希望第二个元素是默认元素。这是代码。
XAML:
<ComboBox Grid.Row="2" Name="_cmbServiceType" Visibility="Visible"
SelectedValue="{Binding Path=FL_TYPE, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=true}"
ItemsSource="{Binding Path= ClientList}"
SelectedValuePath="FL_TYPE"
DisplayMemberPath="ID_TYPE"
SelectedItem="{Binding Path=SelectedItem, UpdateSourceTrigger=PropertyChanged}"/>
视图模型:
private ObservableCollection<GenericEnumType<string>> _clientList = null;
public ObservableCollection<GenericEnumType<string>> ClientList
{
get
{
Master.Controller.Execute(delegate(IResult result)
{
_clientList = new ObservableCollection<GenericEnumType<string>>()
{
new GenericEnumType<string>(SAPClient.WEBSERVICE_URL_500.ToString(), CappTranslate.Translate.EBOM),
new GenericEnumType<string>(SAPClient.WEBSERVICE_URL_400.ToString(), CappTranslate.Translate.PBOM),
};
return true;
});
return _clientList;
}
}
private GenericEnumType<string> _selectedItem = null;
public GenericEnumType<string> SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
if (_selectedItem.FL_TYPE == SAPClient.WEBSERVICE_URL_500.ToString())
_selectedBomUsage = null;
OnPropertyChanged(() => SelectedItem);
OnPropertyChanged(() => CanClose);
OnPropertyChanged(() => IsComboUsageEnabled);
OnPropertyChanged(() => SelectedBomUsage);
}
}
我尝试在我的构造函数中设置:
SelectedItem = ClientList[1];
但是没用。
一些建议??
我会说,你不应该同时设置 SelectedValue 和 SelectedItem。
尝试只设置 SelectedItem。
我想在此组合框中设置一个默认值。 ItemsSource 包含两个元素。当我打开包含我的组合框的 window 时,我希望第二个元素是默认元素。这是代码。
XAML:
<ComboBox Grid.Row="2" Name="_cmbServiceType" Visibility="Visible"
SelectedValue="{Binding Path=FL_TYPE, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=true}"
ItemsSource="{Binding Path= ClientList}"
SelectedValuePath="FL_TYPE"
DisplayMemberPath="ID_TYPE"
SelectedItem="{Binding Path=SelectedItem, UpdateSourceTrigger=PropertyChanged}"/>
视图模型:
private ObservableCollection<GenericEnumType<string>> _clientList = null;
public ObservableCollection<GenericEnumType<string>> ClientList
{
get
{
Master.Controller.Execute(delegate(IResult result)
{
_clientList = new ObservableCollection<GenericEnumType<string>>()
{
new GenericEnumType<string>(SAPClient.WEBSERVICE_URL_500.ToString(), CappTranslate.Translate.EBOM),
new GenericEnumType<string>(SAPClient.WEBSERVICE_URL_400.ToString(), CappTranslate.Translate.PBOM),
};
return true;
});
return _clientList;
}
}
private GenericEnumType<string> _selectedItem = null;
public GenericEnumType<string> SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
if (_selectedItem.FL_TYPE == SAPClient.WEBSERVICE_URL_500.ToString())
_selectedBomUsage = null;
OnPropertyChanged(() => SelectedItem);
OnPropertyChanged(() => CanClose);
OnPropertyChanged(() => IsComboUsageEnabled);
OnPropertyChanged(() => SelectedBomUsage);
}
}
我尝试在我的构造函数中设置:
SelectedItem = ClientList[1];
但是没用。
一些建议??
我会说,你不应该同时设置 SelectedValue 和 SelectedItem。
尝试只设置 SelectedItem。