小编Luq*_*sen的帖子

WPF 数据绑定组合框中的彩色项目

我读过其他几篇文章,但没有人能够回答我的问题组合
我有一个 ComboBox,我想在其中以不同颜色显示项目,这可以通过使用 ComboBoxItem 并设置其背景来完成。当我想以不同的颜色存储我的 CategoryDTO 并稍后能够再次提取它们时,我的问题就出现了。我需要显示的只是 CategoryDTO 的颜色和名称属性。然后我必须能够从 SelectedItem 属性获取 CategoryDTO 对象。我尝试了使用 ItemsSource、DisplayMemberPath 和 SelectedValuePath 的各种解决方案。但只完成了这个组合框的图片
正如所见,它显示颜色,但仅显示所选 CategoryDTO 的名称,我什至还没有测试 SelectedItem 是否正常工作。下面我将放置我使用的代码。

[Serializable]
public class CategoryDTO
{
    public string Name { get; set; }
    ...not important...
}


CategoryDTO[] categories = await _isd.GetCategoriesAsync();
comboBoxCategory.ItemsSource = categories.Select(c => new CategoryComboBoxItem(c)).ToList();
comboBoxCategory.DisplayMemberPath = "Name";
comboBoxCategory.SelectedValuePath = "Name";

public class CategoryComboBoxItem : ComboBoxItem
{
    public CategoryComboBoxItem(CategoryDTO category)
    {
        this.Background = new SolidColorBrush(category.Color);
        this.Content = category;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在 .xaml 中没有指定任何特殊内容,因此我将忽略该部分。除此之外,我希望能够使用 Name 属性设置 SelectedItem。我非常喜欢将答案放在代码隐藏中,但如果它非常复杂,则仅使用 .xaml …

c# data-binding wpf combobox code-behind

1
推荐指数
1
解决办法
3419
查看次数

标签 统计

c# ×1

code-behind ×1

combobox ×1

data-binding ×1

wpf ×1