質問

WPFToolkitのDataGridを使用していて、編集ボタンを機能させようとしています。ここに列があります:

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


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

次のエラーが表示されます:

BindingExpressionパスエラー: 'EditVenueCommand'プロパティが 'object' '' Venue '(HashCode = 18626439)'で見つかりません。 BindingExpression:Path = EditVenueCommand; DataItem = 'Venue'(HashCode = 18626439);ターゲット要素は 'Hyperlink'(HashCode = 32883419)です。ターゲットプロパティは 'Command'(タイプ 'ICommand')

EditVenueCommandは、グリッドの外側にあるときに完全に起動します。

また、DataGridHyperlinkColumnの代わりにDataGridTemplateColumnを使用している理由は、それを動作させることができなかったためです:(

役に立ちましたか?

解決

コードで起こっていることは、バインディングが&quot; EditVenueCommand&quot;を処理していることです。データテンプレートのデータコンテキストで見つける必要があるプロパティとして。

とにかくコマンドを接続するためにバインディングを使用するべきではありません。次のように名前空間+タイプ+コマンドフィールドを指定するだけです:

Command="myns:MyType.EditVenueCommand"

mynsがCLR名前空間にマップされる場所。例:

<Window xmlns:myns="clr-namespace:MyNamespace;assembly=MyAssemblyName" ...
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top