将方法绑定到datagrid WPF中的列

时间:2011-07-25 15:52:40

标签: c# wpf c#-4.0

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

顺便说一下它的单向绑定。

3 个答案:

答案 0 :(得分:1)

您可以使用

完成此操作
  • 一些邪恶的伎俩
  • 一个IValueConverter
  • 附属物
  • 行为
  • 创建只读代理属性。

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

为什么要绑定到方法?

答案 1 :(得分:1)

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

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

  ...

  <TextBlock Text="{Binding Source={StaticResource newGuidProvider}" ... />

  ...

</Window>

这只是一个快速示例,您可以查看ObjectDataProvider以查看它是否适合您的方案。 Here is a great resource显示其他可能性,例如通过绑定将参数传递给方法等。

答案 2 :(得分:0)

如果我理解你想要什么,那么你应该足够实现IValueConverter接口并将它在XAML中分配给你的列数据绑定的Converter属性:这里有一个如何使用它的例子:WPF Converter Example

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

修改

实际上没有DataGrid控制,有一个ListView,但概念是相同的。

希望这有帮助。