Necesito crear una MarkupExtension para mi aplicación WPF que tendrá que poder tomar un número arbitrario de parámetros que se utilizarán para el reemplazo de tokens en cadenas internacionalizadas. Nuestro código de internacionalización usa una matriz de parámetros para tomar estos parámetros. Como quiero que estos sean transitables desde XAML, ¿hay alguna manera de especificar estos parámetros sin crear explícitamente una x: Matriz en XAML?¿Cómo puedo pasar múltiples parámetros a una matriz params en WPF MarkupExtension?
5
A
Respuesta
2
Creo que tienes que usar la matriz x: no conozco otra manera (y ni siquiera puedo pensar en otra forma que sea compatible con la extensión de la extensión de marcado {}).
0
A veces no es bastante, pero la fuerza bruta lleva el día ...
[MarkupExtensionReturnType(typeof(PriorityBinding))]
pública Prioridad clase sellada: MarkupExtension {
de sólo lectura BindingBase [] fijaciones;
#region Constructors
public Priority(BindingBase b1) {
bindings = new [] {b1};
}
public Priority(BindingBase b1, BindingBase b2) {
bindings = new [] {b1, b2};
}
public Priority(BindingBase b1, BindingBase b2, BindingBase b3) {
bindings = new [] {b1, b2, b3};
}
public Priority(BindingBase b1, BindingBase b2, BindingBase b3,
BindingBase b4) {
bindings = new [] {b1, b2, b3, b4};
}
public Priority(BindingBase b1, BindingBase b2, BindingBase b3,
BindingBase b4, BindingBase b5) {
bindings = new [] {b1, b2, b3, b4, b5};
}
public Priority(BindingBase b1, BindingBase b2, BindingBase b3,
BindingBase b4, BindingBase b5, BindingBase b6) {
bindings = new [] {b1, b2, b3, b4, b5, b6};
}
public Priority(BindingBase b1, BindingBase b2, BindingBase b3,
BindingBase b4, BindingBase b5, BindingBase b6, BindingBase b7) {
bindings = new [] {b1, b2, b3, b4, b5, b6, b7};
}
public Priority(BindingBase b1, BindingBase b2, BindingBase b3,
BindingBase b4, BindingBase b5, BindingBase b6, BindingBase b7, BindingBase b8) {
bindings = new [] {b1, b2, b3, b4, b5, b6, b7, b8};
}
#endregion
public override object ProvideValue(IServiceProvider serviceProvider) {
var binding = new PriorityBinding();
foreach (var item in bindings) {
binding.Bindings.Add(item);
}
return binding;
}
}
Cuestiones relacionadas
- 1. ¿Cómo pasar múltiples params en lote?
- 2. ¿Cómo pasar array como múltiples parámetros para funcionar?
- 3. Cómo pasar múltiples parámetros a Eval()?
- 4. MarkupExtension con parámetros de enlace
- 5. Cómo pasar una colección/parámetros de matriz a una Acción
- 6. ¿Cómo puedo pasar una matriz a una función en Perl?
- 7. ¿Cómo puedo pasar una referencia a una función, con parámetros?
- 8. Pasar una matriz de parámetros a un procedimiento almacenado
- 9. Cómo pasar múltiples parámetros a un hilo en C
- 10. ASP.Net MVC Pasar parámetros múltiples a una vista
- 11. Al pasar parámetros a CanCan en RoR
- 12. cómo pasar múltiples parámetros para rake tarea
- 13. ¿Cómo puedo pasar una matriz multidimensional a una función?
- 14. ¿Cómo pasar múltiples parámetros nombrados a Spring JdbcTemplate?
- 15. Cómo pasar parámetros a una vista
- 16. Pasar múltiples parámetros en un MVC Ajax.ActionLink
- 17. ¿Pasar una matriz de parámetros vs. parámetros individuales a una función en PHP?
- 18. Pasar múltiples parámetros tipo hash en url
- 19. ¿Cómo puedo pasar una matriz de const o una matriz variable a una función en C?
- 20. ¿Cómo puedo convertir la lista de parámetros de una función de PHP a una matriz asociativa?
- 21. Cómo pasar un solo objeto [] a un objeto params []
- 22. ¿Cómo pasar parámetros de un controlador a una plantilla?
- 23. de AsyncTask doInBackground (Parámetros ... params)
- 24. utilizando múltiples params alcance en Rails3
- 25. ¿Cómo puedo pasar múltiples atributos a find_or_create_by en Rails 3?
- 26. En Clojure, ¿cómo puedo pasar múltiples argumentos a un defmethod?
- 27. ¿Por qué pasar null a un método params da como resultado una matriz de parámetro nulo?
- 28. Android: ¿Cómo puedo pasar los parámetros a OnPreExecute() de AsyncTask?
- 29. ¿Cómo puedo pasar una matriz de parámetros de PDO y aún así especificar sus tipos?
- 30. ¿Cómo puedo pasar los parámetros init a HttpSessionListener?
estás en lo correcto. Investigué esto por mucho tiempo y obtuve la misma respuesta. –