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.
Version imprimable
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: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:
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:
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# :lol:
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:
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:
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.