我的静态类包含当前的交易信息:
public static class BKM
{
public static List<Ticket> Tickets {get;set;}
}
我想绑定到XAML中的Tickets.Count属性。
当我输入类似这样的内容时
<TextBlock Text="{Binding Source={x:Static p:BKM.Tickets.Count}}" />
其中p是
xmlns:p="clr-namespace:TicketApplication"
我收到错误
错误22不支持嵌套类型:BKM.Tickets。
错误21找不到类型'BKM.Tickets'。请注意,类型名称区分大小写 错误23无法在目标类型上找到成员“计数”。
答案 0 :(得分:5)
我怀疑一个问题是您希望源为BKM.Tickets
,但您希望路径为Count
。所以试试这个:
<TextBlock Text="{Binding Source={x:Static p:BKM.Tickets} Path=Count}" />
正如斯里兰姆所说,你也应该Tickets
一个属性,例如
public static List<Ticket> Tickets { get; set; }
你也应该考虑摆脱全球状态,这很难测试和推理。
答案 1 :(得分:1)
Tickets
应该是一个属性。不支持DataBinding to field。
public static class BKM
{
public static List<Ticket> Tickets { get; set; }
}
如果财产不是问题,那么我认为Jon做对了。您需要绑定到BKM.Tickets
属性并绑定到Count
,如Jon的回答中所述。
<TextBlock Text="{Binding Source={x:Static p:BKM.Tickets} Path=Count}" />
答案 2 :(得分:0)
把这个属性
public static int MyCounts
{
get { return Tickets == null ? 0: Tickets.Count; }
}
并绑定它
<TextBlock Text="{Binding Source={x:Static p:BKM.MyCounts}}" />