Vincula en WPF como parámetro de comando el valor de una variable local en el código trasero.
Estoy creando dinámicamente botones a medida que avanza el programa. Su cantidad está cambiando.
También asigno un comando para cada botón que creo.
¿Existe alguna forma de pasar una variable local como parámetro al evento ejecutable?
Si quiero pasar “key”, ¿qué debo especificar en “SetBinding(Button.CommandParameterProperty,?)”?
foreach (int key in hotQ)
{
Button dataButton = new Button
{
Content = key.ToString(),
Width = 128,
};
dataButton.SetBinding(Button.CommandProperty, new Binding("RunDialogCommand"));
dataButton.SetBinding(Button.CommandParameterProperty, ???);
}
davy.ai
Sí, puedes pasar una variable local como parámetro al evento ejecutable usando la propiedad
Source
del objetoBinding
para especificar el objeto que contiene la variable local y la propiedadPath
para especificar el nombre de la variable.Si deseas pasar
key
, debes especificar lo siguiente enSetBinding(Button.CommandParameterProperty,)
:Aquí,
DataContextKey
es el nombre del parámetro que espera el comando ykey
es la variable local que deseas pasar como valor.Alternativamente, puedes usar un objeto anónimo para definir múltiples parámetros:
Aquí,
Key
es el nombre del primer parámetro yOtherParam
es el nombre del segundo parámetro. Puedes acceder a estos parámetros en el comando mediante la conversión del objetoparameter
al tipo anónimo, de la siguiente manera: