Я пытаюсь установить начальное выбранное значение (или значение по умолчанию) поля со списком. Когда пользователь выбирает запись об инциденте, статус инцидента из записи об инциденте должен отображаться как выбор по умолчанию для поля со списком, а не как пустой выбор, который появляется вверху списка со списком. Я пытался:
Двухстороннее связывание выбранного значения поля со списком со свойством в моей модели, а затем установка свойства по мере загрузки данных об инциденте,
Двусторонняя привязка выбранного поля со списком к свойству в моей модели, а затем установка свойства при загрузке данных инцидента,
Двусторонняя привязкаи поле со списком выбрало индекс и значение для свойств в моей модели, а затем установило свойства по мере загрузки данных об инциденте,
, но независимо от того, что я пытался, поле со списком все еще показываеткак это было бы изначально с пустой строкой для отображения по умолчанию в верхней части списка.
Вот XAML для ComboBox:
<ComboBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
IsEnabled="{qc:Binding '!$P', P={Binding Path=Form104CModel.IsPartINA}}"
HorizontalAlignment="Left"
DisplayMemberPath="Description"
SelectedValuePath="Code"
SelectedValue="{Binding Form104CModel.IncidentStatus, Mode=TwoWay}"
SelectedIndex="{Binding Form104CModel.IncidentStatusSelectedIndex, Mode=TwoWay}"
Margin="2,0,2,0" Name="cmbxIncidentStatus"
FontSize="11" FontWeight="Bold" Width="180">
<ComboBox.ItemsSource>
<CompositeCollection>
<domain:Enumeration Code="" Description="" />
<CollectionContainer
Collection="{Binding Source={x:Static infraData:CodeCache.ClearedException}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
Вот свойства в модели, к которым привязаны выбранный индекс и выбранное значение:
private int incidentStatusSelectedIndex;
public int IncidentStatusSelectedIndex
{
get
{
return this.incidentStatusSelectedIndex;
}
set
{
if (this.incidentStatusSelectedIndex != value)
{
this.incidentStatusSelectedIndex = value;
}
}
}
private string incidentStatus;
[CustomValidation(typeof(Form104CModel), "ValidateIncidentStatus")]
public string IncidentStatus
{
get
{
return this.incidentStatus;
}
set
{
if (this.incidentStatus != value)
{
this.ValidateProperty("IncidentStatus", value);
this.incidentStatus = value;
this.RaisePropertyChanged("IncidentStatus");
}
}
}
А вот код (из ViewModel), который устанавливает значение статуса инцидента.
switch (rr.Incident.IncidentStatus)
{
case "A":
this.Form104CModel.IncidentStatus = "CLEARED BY ARREST";
this.Form104CModel.IncidentStatusSelectedIndex = 1;
break;
case "D":
this.Form104CModel.IncidentStatus = "DEATH OF OFFENDER";
this.Form104CModel.IncidentStatusSelectedIndex = 2;
break;
case "E":
this.Form104CModel.IncidentStatus = "EXTRADITION DECLINED";
this.Form104CModel.IncidentStatusSelectedIndex = 3;
break;
case "J":
this.Form104CModel.IncidentStatus = "JUVENILE, NO CUSTODY";
this.Form104CModel.IncidentStatusSelectedIndex = 4;
break;
case "O":
this.Form104CModel.IncidentStatus = "OPEN";
this.Form104CModel.IncidentStatusSelectedIndex = 5;
break;
case "P":
this.Form104CModel.IncidentStatus = "PROSECUTION DECLINED";
this.Form104CModel.IncidentStatusSelectedIndex = 6;
break;
case "R":
this.Form104CModel.IncidentStatus = "REFUSED TO COOPERATE";
this.Form104CModel.IncidentStatusSelectedIndex = 7;
break;
case "U":
this.Form104CModel.IncidentStatus = "UNFOUNDED";
this.Form104CModel.IncidentStatusSelectedIndex = 8;
break;
}
Единственное, о чем я могу думать сейчас, это то, что ComboxBox.ItemsSource каким-то образом мешает моим усилиям выбратьпо умолчанию на основе поля состояния инцидента.
Любые предложения будут высоко оценены.