У меня есть ComboBox 'cbSkillLevel', к которому я привязываю данные, как показано ниже, чтобы заполнить список. Он работает нормально. У меня есть список с элементами, основанный на выборе элементов. Мне нужно установить другое значение в «cbSkillLevel». Как установить значение combobox в значение, которое я хочу.set selectedValue combobox
То, что я пробовал, это ревет.
Ваша помощь очень ценится.
<ComboBox Grid.Column="3" x:Name="cbSkillLevel" Margin="0,0,10,0" IsEnabled="{Binding ElementName=SkillsPage, Path=setIsEnabled, Mode=OneWay}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock FontSize="26" Foreground="Black" Text="{Binding Value}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
List<Lookup> skillLevel = dbOperation.getLookupData("Skill_Level");
cbSkillLevel.ItemsSource = skillLevel;
private void lbSkills_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
clearFields();
clearTopicsForm();
var skillobj = (lbSkills.SelectedItem as Skill);
if (skillobj != null)
{
selected_SkillDescription = skillobj.SkillDescription;
tbNotes.Text = skillobj.Notes;
tbDescription.Text = selected_SkillDescription;
/*I TRIED THE BELLOW OPTION BUT DID NOT WORK.*/
//cbSkillLevel.SelectedItem = skillobj.SkillLevel;
//cbSkillLevel.SelectedIndex = cbSkillLevel.Items.IndexOf(skillobj.SkillLevel.ToString());
//cbSkillLevel.SelectedIndex = 1;
//cbSkillLevel.ItemsSource = tempListSkillLevel;
cbSkillLevel.SelectedValue = skillobj.SkillLevel.ToString();
cbSkillType.SelectedItem = skillobj.SkillType;
tbWarningWeeks.Text = skillobj.WarningWeeks.ToString();
dpValidFrom.Date = skillobj.ValidFrom;
dpValidUntil.Date = skillobj.ValidUntil;
/*load topics for this skill*/
loadTopicsFromDB(skillobj.SkillDescription);
//set the fields as read only
setIsEnabled = false;
addEditButton();
}
}
я, хотя с помощью 'cbSkillLevel.SelectedValue = skillobj.SkillLevel.ToString();' должен работать, но это не так. Я думаю, Потому что связывание установлено значение «Value»
<TextBlock FontSize="26" Foreground="Black" Text="{Binding Value}" />
И при установке значения я назначаю от навыка объекта. Как установить значение 'cbSkillLevel.SelectedValue = skillobj.SkillLevel.ToString();'
class Skill
{
[SQLite.PrimaryKey, SQLite.AutoIncrement]
public int Id { get; set; }
public string SkillDescription { get; set; }
public string SkillType { get; set; }
public string SkillLevel { get; set; }
public DateTime ValidFrom { get; set; }
public DateTime ValidUntil { get; set; }
public int WarningWeeks { get; set; }
public string Notes { get; set; }
}
class Lookup
{
[SQLite.PrimaryKey, SQLite.AutoIncrement]
public int LookupId { get; set; }
public string Type { get; set; }
public string Value { get; set; }
}
Привет «Значение» не является уникальным для обоих объектов, в объекте Lookup его «Value», а в Skill - «SkillLevel». вот почему я не уверен, как это сделать. – BRDroid
Хм, LookupId - это идентификатор? Что бы то ни было, они могут включать или создавать новое свойство, если это необходимо (могут состоять из данных других объектов, только для чтения). И используйте это вместо «Значение» в моих двух фрагментах кода. – ceciliaSHARP
между ними нет ключей, и я не могу добавить какое-либо свойство, так как это будет структура таблицы. – BRDroid