繁体   English   中英

将方法绑定到Datagrid WPF中的列

[英]Binding a method to a column in datagrid WPF

我在wpf中有一个数据网格,它绑定到Collection。 在其中一列中,我想绑定一个公共方法,该方法返回字符串而不是属性。 有没有一种方法可以在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 Converter示例

要进行更详细的分析,请查看使用了其中一些的SvnRadar开源项目。

编辑

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

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM