4

我在 WPF 绑定方面遇到了一些问题。
我有一个在类 Values 中有一些 const 属性的程序集,它们对应于数据表中的列。我想使用 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] 绑定,我可以显示该值。

出现了什么?有什么线索吗?

提前致谢。

4

2 回答 2

3

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

{Binding Source={x:Static C:Values.FieldCode}}
于 2010-08-18T18:03:06.093 回答
1

斜体文本不正确,请从EDIT1中阅读:
无法绑定到静态属性。绑定总是需要一个类的实例。可以通过在后面的代码中将类实例化为资源并将该类设置为数据上下文

编辑1:

添加类型的静态属性

public static string FieldCode = "Code";
public static PropertyPath FieldCodePath = new PropertyPath(FieldCode);

将 Binding 更改为以下绑定:

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

我希望这有帮助

于 2010-08-18T17:53:03.977 回答