bonjour,
j'ai créé un tabitem(tab2) et je voudrais qu'il soit identique au tab1 déjà en place? comment faire ?
merci de m'aider.
bonjour,
j'ai créé un tabitem(tab2) et je voudrais qu'il soit identique au tab1 déjà en place? comment faire ?
merci de m'aider.
Tu prends le contenu de ton tab1, tu le met dans un UserControl. Ensuite, dans chaque tabitem, tu mets ce UserControl => tout tes TabItems sont identiques
Oui mais si on a le même problème et que l'on doit le rajouter par code ?
....
Code : Sélectionner tout - Visualiser dans une fenêtre à part tabitem newtab = new tabitem();
La solution proposée ne dépendait pas d'un type de code. En C# ou Xaml, c'est pareil.
Tu arriveras à un moment donné à quelque chose comme ça :
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ... newtab.Header = "Onglet 01"; newtab.Content = new UserControl1();
Je trouve que c'est pas évident par code
J'ai besoin de créer des colonnes en dynamique dans une Datagrid
Et je ne sais pas toujours ou il faut associer les controles.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 DataGridTemplateColumn colx = new DataGridTemplateColumn(); ComboBox cc = new ComboBox(); cc.Name = "Cbocc"; cc.ItemsSource = viewcollab; cc.DisplayMemberPath = "PRENOM"; colx.Header = cc; cc.SelectedIndex = i; colx.IsReadOnly = false; DataTemplate da = new DataTemplate(); da. Ici Je ne sais pas ou lui dire que mon datatemplate va contenir un Textbox TextBox tt = new TextBox (); colx.CellTemplate = da; tt.Name = "TxtSaisie"; ((System.Windows.Controls.TextBox)(tt)).TextChanged += new System.Windows.Controls.TextChangedEventHandler(this.TxtSaisie_TextChanged); ((System.Windows.Controls.TextBox)(tt)).GotMouseCapture += new System.Windows.Input.MouseEventHandler(this.TxtSaisie_GotMouseCapture); Datagrid.ColumnWidth = DataGridLength.SizeToCells; Datagrid.Columns.Add(colx);
Du coup pourquoi passer par du code c#
Le faire en c#, c'est toujours possible, mais c'est souvent très fastidieux.
Sinon pour les DataTemplate, c'est particulier (utilisation de FrameworkElementFactory). Il y a un exemple ici :
http://www.developpez.net/forums/d48...e/#post2912199
Merci beaucoup pour l'exemple , en fait Je passe en code c# parce que je dois créer mes colonnes dynamiquement,je ne sais pas au départ combien il y aura de colonnes dans mon datagrid.
j'ai repris l'exemple mais le Style ne s'applique pas
Je dois certainement faire une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Style ss = (Style)FindResource("TextBoxStyleEncais"); Path p = new Path(); p.SetResourceReference(StyleProperty,ss); p.Name = "StyleCol"; factoryTextBox.SetBinding(TextBox.StyleProperty,new Binding(p.Name));
Je viens de trouver une solution , ca marche mais je dois faire un Textbox en Référence (Bonne solution ?)
Si c'est bon je mets le code pour quelqun que cela pourrait interesser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 TextBox tt = new TextBox(); tt.Name = "TxtSaisie"; tt.Style = (Style)FindResource("TextBoxStyleEncais"); DataTemplate template = new DataTemplate(); FrameworkElementFactory factoryTextBox = new FrameworkElementFactory(typeof(TextBox),tt.Name); factoryTextBox.SetValue(TextBox.StyleProperty, tt.Style); FrameworkElementFactory factoryTextGrid = new FrameworkElementFactory(typeof(Grid)); factoryTextGrid.AppendChild(factoryTextBox); template.VisualTree = factoryTextBox; colx.CellTemplate = template; colx.Visibility = Visibility.Visible; dd.ColumnWidth = DataGridLength.SizeToCells; dd.Columns.Add(colx);
Oui ça semble bon. J'avais pas noté que tu voulais définir un style pour la TextBox.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager