Cómo vincular un ICommand a un botón fuera del DataContext?
Tengo un botón dentro de un DataGrid con un DataContext (KeyValuePair). Quiero implementar un Command en este botón. Pero si uso Command=”{Binding CommandoTest}”, no funciona.
Probé el ICommand en un Grid sin DataContext y funciona bien.
<datagrid datacontext="{Binding PersonList.Keys}">
<datagrid.columns>
<datagridtemplatecolumn>
<datagridtemplatecolumn.celltemplate>
<datatemplate>
<grid>
<button command="{Binding CommandoTest}" content="CommandoTest"></button>
</grid>
</datatemplate>
</datagridtemplatecolumn.celltemplate>
</datagridtemplatecolumn>
</datagrid.columns>
</datagrid>
El código del Command:
Public ReadOnly Property CommandoTest As ICommand
Get
Return CommandTest_exp
End Get
End Property
Public Sub CommandTest_exp()
MessageBox.Show("Test", "Test")
End Sub
davy.ai
Hay un par de posibles problemas con el código proporcionado que podrían estar causando que el comando no funcione en el botón dentro del DataGrid. Una posibilidad es que el DataContext del botón no esté configurado correctamente para el KeyValuePair que contiene el comando. Otra posibilidad es que la vinculación del comando no se esté resolviendo correctamente debido a que el DataContext del DataGrid se establece en PersonList.Keys.
Para implementar correctamente un comando en el botón del DataGrid, se podrían seguir los siguientes pasos:
Al establecer el DataContext del botón como el KeyValuePair que contiene el comando, y hacer referencia a la propiedad TestCommand en la expresión de vinculación, el comando debería ejecutarse correctamente cuando se hace clic en el botón dentro del DataGrid.