与 ListView ItemTemplate 中的静态属性绑定

发布于 2024-09-14 13:59:02 字数 746 浏览 7 评论 0原文

我在 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>

如果我使用与静态属性的绑定,我将无法在datarow 但如果我使用像这样的绑定 [代码] 我就能够显示该值。

接下来会发生什么? 有什么线索吗?

提前致谢。

I'm having some problems with WPF binding.

I have an assembly with some const properties in class Values, that correspond to columns from datatable.
I want to bind the value from a column to a TextBlock using the const property to specify the column at a ListView ItemTemplate like shown in the code:

 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>

If I use binding with the static property I I'm not able to show the value in the datarow but if I use the Binding like this [CODE] I'm able to show the value.

What is appening?
Any clue?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

糖果控 2024-09-21 13:59:02

您需要使用静态属性作为源,而不是路径,这是绑定的默认属性:

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

You need to use your static property as the Source, not the Path, which is the default attribute for Binding:

{Binding Source={x:Static C:Values.FieldCode}}
淡淡の花香 2024-09-21 13:59:02

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

编辑1:

添加类型的静态属性

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

将绑定更改为下面的绑定:

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

我希望这有帮助

the italic text is not correct, please read from EDIT1:
It is not possible to bind to static properties. Binding always needs an instance of the Class. It is possible by instantiating the class as resource of in the code behind and set that class as the datacontext

EDIT1:

Add a static property of type

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

Change the Binding to the binding below:

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

I hope this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文