C# 是否可以从可观察的集合中绑定一个值?

C# 是否可以从可观察的集合中绑定一个值?,c#,xaml,observablecollection,C#,Xaml,Observablecollection,我创建了以下类: class WorkBook { public string WorkSheetName { get; set; } public int TotalRows { get; set; } public string LastPopulatedDate { get; set; } } 并用5个不同的“工作簿”对象填充了以下集合: public ObservableCollection<WorkBook> WorkBookResults

我创建了以下类:

class WorkBook
{
    public string WorkSheetName { get; set; }
    public int TotalRows { get; set; }
    public string LastPopulatedDate { get; set; }
}
并用5个不同的“工作簿”对象填充了以下集合:

    public ObservableCollection<WorkBook> WorkBookResults { get; set; }
publicobservableCollection工作簿结果{get;set;}
在XAML中,是否可以根据工作表名称执行Linq语句来访问这些WorkBookData对象之一

也就是说,如果工作表名称=x且在WorkBookDataResults集合中,标签将显示“LastPopulatedDate”

我当时不需要更改此值,只需显示它即可


提前感谢:)

如果您可以将可观察的收藏更改为字典:

公共字典工作簿结果{get;set;}

然后可以在xaml中按如下方式进行绑定:

<TextBlock Text="{Binding Path=WorkBookResults[Sheet 1].LastPopulatedDate}"></TextBlock>        

因此,在上面的xaml中,我们要显示LastPopulatedDate值 对于“表1”工作表

工作簿结果字典的填充方式如下:

        WorkBookResults = new Dictionary<string, WorkBook>();

        var sheetName = "Sheet 1";
        var book = new WorkBook()
                        {
                            WorkSheetName = sheetName,Ad 
                            TotalRows = 10,
                            LastPopulatedDate = DateTime.Now.ToString()
                        };

        WorkBookResults[sheetName] = book;
WorkBookResults=newdictionary();
var sheetName=“表1”;
var book=新工作簿()
{
工作表名称=工作表名称,Ad
TotalRows=10,
LastPopulatedDate=DateTime.Now.ToString()
};
工作簿结果[sheetName]=工作簿;

Not本身无法直接用XAML表示,但借助
IValueConverter
IMultiValueConverter
的帮助,在XAML中构造此条件绑定应该相当容易。但是,我有两个问题:如果WorkSheetName不在WorkBookDataResults集合中,标签应该显示什么?还有一个问题:)你提到的WorkBookData是什么?IValueConverter是一个很酷的解决方案,但也解决了这个问题-因此我建议只在数据上下文中制作和公开(其中
WorkBookResults
是)另一个属性,例如,
CurrentBookDate
——在内部执行计算,如果没有书适用,则输出空字符串/日期——因为它是一个相对简单的“只读”,不需要执行属性更改为同步和所有