1

我正在尝试使用 Xceed PropertyGrid 显示带有硬编码字符串值的下拉列表。而不是将项目显示为我分配为的字符串IItemSource,PropertyGrid 显示:下拉列表中每个项目的“Xceed.Wpf.Toolkit.PropertyGrid.Attributes.Item”。当我选择一个对象时,所需的字符串显示为所选项目。

这是我看到的下拉项目:

在此处输入图像描述

当我选择一个项目时,我可以按照我希望它显示为下拉项目的方式查看它:

在此处输入图像描述

我的代码:

XAML:

<xctk:PropertyGrid SelectedObject="{Binding MySettingsWrapper}" AutoGenerateProperties="True">
</xctk:PropertyGrid>

C#:

[Serializable]
public class SettingsWrapper
{
    [LocalizedCategory("SettingsViewCategoryHardware")]
    [LocalizedDisplayName("SettingsViewLblSelectPrinter")]
    [ItemsSource(typeof(PrintersItemSource))]
    public string SelectedPrinter { get; set; }

    public class PrintersItemSource : IItemsSource
    {
        public ItemCollection GetValues()
        {
            var printers = new ItemCollection();
            for (int i = 0; i < 7; i++)
            {
                printers.Add("Option - " + i);
            }

            return printers;
        }
    }
}

我正在使用 Caliburn.Micro,顺便说一句。

我已经尝试了几件事,但我没有想法。任何帮助表示赞赏。

4

1 回答 1

1

这应该有效:

public ItemCollection GetValues()
{
    var printers = new ItemCollection();
    for (int i = 0; i < 7; i++)
    {
        string entry = "Option - " + i;
        printers.Add(entry, entry);
    }

    return printers;
}
于 2015-03-03T18:33:03.333 回答