首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在组合框中显示子对象的名称?

如何在组合框中显示子对象的名称?
EN

Stack Overflow用户
提问于 2019-01-17 18:28:45
回答 2查看 42关注 0票数 0

我有一个复杂的文章对象,其中包含一个ArticleLocation类型的位置列表。我需要在GridView中的组合框中显示这些位置:

代码语言:javascript
运行
复制
public class Article : INotifyPropertyChanged
{
    private int sapNumber;
    private string descript;
    private ObservableCollection<ArticleLocation> locations;
    private ArticleLocation selectedLocation;


    public int SAPNumber
    {
        get => sapNumber;
        set
        {
            if (sapNumber != value)
            {
                sapNumber = value;
                RaisePropertyChanged("SAPNumber");
            }
        }
    }

    public string Description
    {
        get => descript;
        set
        {
            if (descript == null || !descript.Equals(value))
            {
                descript = value;
                RaisePropertyChanged("Description");
            }
        }
    }

    internal ObservableCollection<ArticleLocation> Locations { get => locations; set => locations = value; }
    internal ArticleLocation SelectedLocation { get => selectedLocation; set => selectedLocation = value; }

}

我需要像这样显示存储的位置:

代码语言:javascript
运行
复制
class ArticleLocation : INotifyPropertyChanged
{
    private string location;
    private double available;

    public string Location { get => location; set => location = value; }
    public double Available { get => available; set => available = value; }

    public event PropertyChangedEventHandler PropertyChanged;

    private void RaisePropertyChanged(string property)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(property));
        }
    }
}

我现在所拥有的combobox:

代码语言:javascript
运行
复制
<telerik:RadComboBox ItemsSource="{Binding Locations}" DisplayMemberPath="Location" SelectedItem="{Binding SelectedLocation}" SelectionChanged="RadComboBox_SelectionChanged"/>

我不知道如何让位置显示,以便它可以被选择。我能想到的唯一替代方案是将位置名称和可用项保存在单独的列表中……

这并不是说它应该有很大的不同,但我使用的是wpf形式的telerik对象。

EN

Stack Overflow用户

发布于 2019-01-18 13:51:01

文章类:

代码语言:javascript
运行
复制
public class Article : INotifyPropertyChanged
{
    public ObservableCollection<ArticleLocation> locations;
    public string Location { 
        get => location; 
        set
        {
            if (location == null || !location.Equals(value))
            {
                 location = value;
                 RaisePropertyChanged("Location");
            }
        }
    }
}

ArticleLocation类:

代码语言:javascript
运行
复制
public class ArticleLocation : INotifyPropertyChanged
{
    private string location;

    public string Location { 
        get => location; 
        set
        {
            if (location == null || !location.Equals(value))
            {
                location = value;
                RaisePropertyChanged("Location");
            }
        }
    }
}

在您的xaml.cs类中:

代码语言:javascript
运行
复制
public MainWindow()
{
    InitializeComponent();
    Article article = new Article();
    this.DataContext = article;
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54233872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档