Devo creare un MarkupExtension per la mia applicazione WPF che dovrà essere in grado di prendere un numero arbitrario di parametri che verranno utilizzati per la sostituzione di token in stringhe internazionalizzate. Il nostro codice di internazionalizzazione utilizza una matrice params per prendere questi parametri. Dal momento che voglio che questi siano passabili da XAML, c'è un modo per specificare questi parametri senza creare esplicitamente una x: Array in XAML?Come posso passare più parametri a un array params in un MarkupExtension WPF?
5
A
risposta
2
Penso che devi usare x: Array, non conosco nessun altro modo (e non posso nemmeno pensare a nessun altro modo che sia compatibile con la sintassi dell'estensione di markup {}).
0
A volte non è abbastanza, ma la forza bruta porta il giorno ...
[MarkupExtensionReturnType(typeof(PriorityBinding))]
pubblico classe chiusa Priorità: MarkupExtension {
sola lettura BindingBase [] legature;
#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;
}
}
Problemi correlati
- 1. Come posso passare parametri a un ServiceHost
- 2. Come passare più parametri a un thread in C
- 3. Come posso passare più parametri nell'URL?
- 4. Come posso passare i parametri a un provider con Guice?
- 5. passare parametri a un thread
- 6. Passare gli array come parametri in VB6
- 7. Perché il passaggio di null a un metodo params genera un array di parametri nullo?
- 8. Come passare più parametri a Url.Action()
- 9. Come posso passare un array multidimensionale a una funzione?
- 10. Come posso passare una proprietà array a un componente Ember?
- 11. WPF MarkupExtension e RowDefinition risultati in NotImplementedException
- 12. Come posso passare un numero variabile di parametri con nome a un metodo?
- 13. Come passare più parametri dello stesso tipo a jQuery Get
- 14. Come passare un array struct a un altro struct array?
- 15. Come passare i parametri da un controller a un modello?
- 16. Passare parametri a CanCan in RoR
- 17. Come posso passare più parametri in Objective-C?
- 18. Come posso passare un array come parametri ad una funzione vararg?
- 19. come passare più parametri url in django
- 20. Come passare più parametri nell'attività
- 21. Passare un array int a MVC Controller
- 22. Come passare i parametri a OnClickListener?
- 23. passare più parametri a Html.BeginForm MVC
- 24. WPF: Dinamico MarkupExtension- ReRendering/Aggiornamento di valore
- 25. Passare un array come valore in un DbParameter ado.net
- 26. js sort() funzione personalizzata come posso passare più parametri?
- 27. Come passare parametri a un altro processo in C#
- 28. Come passare più parametri in batch?
- 29. Rails: passare Params tramite Ajax
- 30. Come passare un array di interi a clausola in MyBatis
lei ha ragione. Ho esaminato questo a lungo e ho avuto la stessa risposta. –