Привязка метода к столбцу в сетке данных WPF - PullRequest
1 голос
/ 25 июля 2011

У меня есть сетка данных в wpf, которая связана с коллекцией. В одном из столбцов я хочу связать публичный метод, который возвращает строку вместо свойства. Есть ли способ решить эту проблему в WPF.

Кстати, односторонняя привязка.

Ответы [ 3 ]

2 голосов
/ 26 июля 2011

Я не совсем уверен, что вы хотите сделать, и рекомендации предыдущих двух ответов могут быть (и, вероятно, более) уместны в вашем сценарии, но просто ответив на свой вопрос, вы можете косвенно связать метод с помощьюObjectDataProvider.

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

  ...

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

  ...

</Window>

Это всего лишь быстрый пример, и вы можете заглянуть в ObjectDataProvider, чтобы увидеть, подходит ли он в вашем сценарии. Вот замечательный ресурс , который показывает дополнительные возможности, такие как передача параметров в метод и т. Д., Через привязки.

1 голос
/ 25 июля 2011

Вы можете достичь этого, используя

  • некоторые злые трюки
  • IValueConverter
  • присоединенное свойство
  • поведение
  • путем создания прокси-свойства только для чтения.

Однако я бы порекомендовал использовать свойство.Именно так WPF должен работать и обрабатывать всю логику обновления пользовательского интерфейса.

Почему вы хотите привязать к методу?

0 голосов
/ 25 июля 2011

Если я правильно понимаю, что вы хотите, вам должно быть достаточно реализовать интерфейс IValueConverter и назначить его в XAML для атрибута Converter привязки данных столбцов. : Пример конвертера WPF

для более подробного анализа можете взглянуть на SvnRadar проект с открытым исходным кодом, который использует их несколько.

EDIT

На самом деле нет DataGrid элемента управления, есть ListView, но концепция та же.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...