Команда в WPFToolkit DataGridTemplateColumn не работает - PullRequest
0 голосов
/ 22 октября 2009

я использую DataGrid WPFToolkit и пытаюсь заставить работать кнопку редактирования, вот столбец:

<my:DataGridTemplateColumn>
                    <my:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock>
                                <Hyperlink   Command="{Binding EditVenueCommand}" >Edit</Hyperlink>


                            </TextBlock>
                        </DataTemplate>
                    </my:DataGridTemplateColumn.CellTemplate>
                </my:DataGridTemplateColumn>

и я получаю следующую ошибку:

Ошибка пути BindingExpression: свойство 'EditVenueCommand' не найдено в 'объекте' '' Место проведения '(HashCode = 18626439)'. BindingExpression: Path = EditVenueCommand; DataItem = 'Место проведения' (HashCode = 18626439); целевой элемент - «Гиперссылка» (HashCode = 32883419); Свойство target - «Command» (тип «ICommand»)

Команда EditVenueCommand прекрасно срабатывает, когда находится вне сетки.

Кроме того, причина, по которой я использую DataGridTemplateColumn вместо DataGridHyperlinkColumn, заключается в том, что я не могу заставить это работать либо: (

1 Ответ

1 голос
/ 22 октября 2009

Что происходит в вашем коде, так это то, что привязка обрабатывает «EditVenueCommand» как свойство, которое оно должно найти в текстовом тексте шаблона данных.

Вы действительно не должны использовать Binding для подключения команды в любом случае, просто используйте указание поля namespace + type + command, например, так:

Command="myns:MyType.EditVenueCommand"

Где myns отображается в ваше пространство имен CLR. Например:

<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...
...