将方法绑定到数据网格WPF中的列

本文关键字:WPF 网格 数据网 方法 绑定 数据 | 更新日期: 2023-09-27 18:03:31

我在wpf中有一个绑定到Collection的数据网格。在其中一列我想绑定一个返回字符串而不是属性的公共方法。在WPF中有办法解决这个问题吗?

顺便说一下,它是单向绑定的

将方法绑定到数据网格WPF中的列

我不完全确定你想做什么,前两个答案的建议可能(可能更)适合你的场景,但只要你回答你的问题,你可以使用ObjectDataProvider间接绑定到一个方法。

<Window>
  <Window.Resources>
    <ObjectDataProvider x:Key="newGuidProvider"
      ObjectType="{x:Type Guid}"
      MethodName="NewGuid"
      />
  </Window.Resources>
  ...
  <TextBlock Text="{Binding Source={StaticResource newGuidProvider}" ... />
  ...
</Window>

这只是一个简单的例子,您可以查看ObjectDataProvider,看看它是否适合您的场景。这是一个很好的资源,它展示了其他的可能性,比如通过绑定将参数传递给方法等。

您可以使用

  • 一个IValueConverter
  • 附加属性
  • 一个行为

但是我建议使用属性。这也是WPF应该工作的方式,并为您处理所有UI更新逻辑。

为什么要绑定到一个方法?

如果我正确理解你想要的,它应该足以让你实现IValueConverter接口,并在XAML中分配它给你列数据绑定的Converter属性:这里是一个如何使用它的例子:WPF转换器示例

的更详细的分析可以看看SvnRadar的开源项目,其中使用了一堆。

编辑

实际上没有DataGrid控制,有ListView控制,但其含义是相同的。