簡體   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