对象是WPF特定的,但同样的事情......
var v = Style.Triggers.Where(x => x is EventTrigger)
.Cast<EventTrigger>()
.Select(x => x.Actions);
此时,我得到3个TriggerActionCollections,这是正确的。我接下来要做的是选择每个集合中 中的项目“是BeginStoryboard”。我似乎无法弄清楚如何选择Actions(TriggerActionsCollection)中的项目。
我在想这样的事情:
var v = Style.Triggers.Where(x => x is EventTrigger)
.Cast<EventTrigger>()
.Select(x => x.Actions.Select(y => y).Where(y => y is BeginStoryboard));
但这不起作用。有帮助吗?
对于那些非wpf的人。是的,有3个TriggerActionCollections,其中一个有一个BeginStoryBoard对象。但为了论证,我希望每个BeginStoryBoard对象都变平了。
答案 0 :(得分:1)
你试过吗
var v = Style.Triggers.Where(x => x is EventTrigger)
.Cast<EventTrigger>()
.SelectMany(x => x.Actions)
.Where(...)
SelectMany instead of Select返回单个集合而不是集合集合。
答案 1 :(得分:0)
var v = Style.Triggers
.OfType<EventTrigger>()
.SelectMany(x => x.Actions)
.OfType<BeginStoryboard>();