是否可以从Observable Collection中绑定一个值?

时间:2014-05-16 17:14:13

标签: 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 { get; set; }

在XAML中,是否可以执行Linq语句来访问其中一个WorkBookData对象,具体取决于工作表名称是什么?

即。标签将显示“LastPopulatedDate”&#39;如果WorkSheetName = x并且在WorkBookDataResults集合中?

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

提前谢谢你:)

1 个答案:

答案 0 :(得分:0)

如果您可以将可观察的集合更改为字典:

public Dictionary<string, WorkBook> WorkBookResults { 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;