使用ListView ItemTemplate中的静态属性绑定

时间:2010-08-18 17:34:52

标签: wpf binding itemtemplate

我在WPF绑定方面遇到了一些问题。
我有一个在类Values中有一些const属性的程序集,它们对应于datatable中的列。 我想使用const属性将列中的值绑定到TextBlock,以指定ListView ItemTemplate中的列,如代码中所示:

 xmlns:C="clr-namespace:WPFApplication1.Entities;assembly=WPFApplication1">
  <Grid>  
   <ListView>
    <ListView.ItemTemplate>
          <DataTemplate>
            <TextBlock Text="{Binding {x:Static C:Values.FieldCode}}" /> /*<- Don't work*/
            /*Works like this: <TextBlock Text="{Binding [CODE]}" />*/ 
          </DataTemplate>
       </ListView.ItemTemplate>
    </ListView>
  </Grid>

如果我使用静态属性的绑定,我无法在数据行中显示该值,但如果我像这样[CODE]使用Binding,我就能显示该值。

什么是上诉? 任何线索?

提前致谢。

2 个答案:

答案 0 :(得分:3)

您需要使用静态属性作为Source,而不是Path,这是Binding的默认属性:

{Binding Source={x:Static C:Values.FieldCode}}

答案 1 :(得分:1)

斜体文字不正确,请阅读 EDIT1
无法绑定到静态属性。绑定始终需要Class的实例。可以通过将类实例化为后面代码中的资源并将该类设置为datacontext

<强> EDIT1:

添加类型为

的静态属性
public static string FieldCode = "Code";
public static PropertyPath FieldCodePath = new PropertyPath(FieldCode);

将绑定更改为以下绑定:

<TextBlock Text="{Binding Path={x:Static C:Values.FieldCodePath}, IsAsync=true}" />

我希望这会有所帮助