假设有两个类
webView.sizeThatFits(CGSizeZero)
我为列表的ItemsSource执行连接,
Class A
{
var a,b,c;
}
Class X
{
var x,y,z;
}
我现在想要点击按钮
从列表中检索datacontext(from A in a1 join X in x1 on A.a equals X.x select new {A.b, A.c, X.y, X.z}
我认为DataContext应该有一个类,如LINQ操作所生成的
var v = (Button)sender.DataContext as ???
任何人都可以帮助从这个LINQ生成的类中检索数据 所以我可以访问
Class ???
{
var b,c,y,z;
}
答案 0 :(得分:0)
不要在LINQ查询中创建匿名对象,只需使用自己定义的某个对象。
foo
然后
public class MyData
{
public int b { get; set; }
public int c { get; set; }
public int y { get; set; }
public int z { get; set; }
}
另请注意,您无法创建属性声明为from A in a1
join X in x1 on A.a equals X.x
select new MyData()
{
b = A.b,
c = A.c,
y = X.y,
z = X.z
}
的{{1}}。只有在声明局部变量时才能使用关键字class
。
答案 1 :(得分:0)
尝试使用动态类型,例如
var v = (Button)sender.DataContext as dynamic;
//Then access the values as v.b, e.t.c
答案 2 :(得分:0)
您正在错误地创建匿名对象。
select new {A.b, A.c, X.y, X.z}
应该写
select new {b=A.b, c=A.c, y=X.y, z=X.z}
然后,您可以使用v.b,v.c等访问属性。
您创建的对象(如果它完全有效)创建了名为' A.b',' A.c',' X.y' ,和' X.z'