绑定到静态类的静态列表

时间:2015-01-20 08:17:45

标签: c# wpf list binding

我的静态类包含当前的交易信息:

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无法在目标类型上找到成员“计数”。

3 个答案:

答案 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}}" />