【发布时间】:2015-11-01 01:02:08
【问题描述】:
我有一个组合框“cbSkillLevel”,我将数据绑定到它,如下所示以填充列表。它工作正常。我有一个包含项目的列表框,根据我需要为“cbSkillLevel”设置不同值的项目选择。如何将组合框的值设置为我想要的值。
我试过的如下。
非常感谢您的帮助。
<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}" />
在设置我从 Skill 对象分配的值时。如何设置值 '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; }
}
【问题讨论】:
标签: c# wpf xaml data-binding combobox