J'ai la classe suivante et je veux transmettre la variable de texte en tant que routéventargs.
public partial class Window1 : Window
{
public static Window1 myWindow1;
public Window1()
{
myWindow1 = this;
InitializeComponent();
this.AddHandler(CloseableTabItem.CloseTabsEvent, new RoutedEventHandler(this.CloseTab));
}
private void CloseTab(object source, RoutedEventArgs args)
{
TabItem tabItem = args.Source as TabItem;
if (tabItem != null)
{
TabControl tabControl = tabItem.Parent as TabControl;
if (tabControl != null)
tabControl.Items.Remove(tabItem);
}
}
private void btnAdd_Click(object sender, RoutedEventArgs e)
{
CloseableTabItem tabItem = new CloseableTabItem("THIS IS A TEST");
MainTab.Items.Add(tabItem);
}
}
3 Réponses :
Créer une nouvelle sous-classe de Si l'événement doit ensuite être soulevé, vous devez créer votre nouvel événement arguments et transmettre la variable à sa propriété pour cette variable. Comment obtenir la valeur dans le gestionnaire devrait être explicite de soi. P> routeDeventargs code>, ajoutez une propriété à ce que vous pouvez stocker la variable à transmettre et créer un délégué de gestionnaire respectif de type void (objet, yourneweventargs) code> que vous attribuez ensuite en tant que type de gestionnaire de votre événement (qui utilise actuellement un normal RouteDeDeHandler code> ne fournit donc que la normale routéteventargs code>). p>
@Arya: votre méthode Clostabs code> utilise toujours le générique routéventargs code> quand il devrait avoir Tabseventargs code>, vous pouvez alors obtenir le texte via args. Texte code>. Je ne sais pas pourquoi cela plantiserait, vous postez le message d'exception et la trace de pile si vous voulez de l'aide avec cela.
J'avais besoin de quelque chose de similaire et avec l'aide de @arya et @ h.b. Je suis venu avec ceci:
My Custom Roudeventargs Sous-classe P>
private ItemListView createItemListView() {
_itemListView = new ItemListView();
_itemListView.GoToItemPropertiesView += new RoutedEventHandler(ChangePage);
return _itemListView;
}
private void ChangePage(object sender, RoutedEventArgs e) {
ChangePageEventArgs args = (ChangePageEventArgs)e;
// Value of page number is 2
int _pageNumber = args.PageNumber;
}
2 - Créer un code de liaison dans un contrôle utilisateur: strong> p > félicitations pour l'équipe WPF. Vous avez réalisé de le faire extrêmement complexe p> p>
Merci, j'apprécie vraiment cette question et les amendements / ajouts que vous avez apportés.