Binding entre TextBox et ComboBox
J'ai réussi à lier la propriété Text de ma TextBox à mon dataset.
Code:
Text="{Binding Path=test_chiffre}"
Et ensuite j'ai voulu copié le contenu du TextBox dans une ListBox.
Code:
ItemsSource ="{Binding Path=(TextBox.Text), ElementName=textBox1}"
Ca donne des résultats bizarre. S'il y a "1447" dans la propriété Text.
Dans la ListBox ça donne ça :
1
4
4
7
Bon j'avoue aussi que je débute en WPF, et je me suis essentiellement basé sur le code de cette vidéo : http://windowsclient.net/learn/video.aspx?v=41987
Son exemple fonctionne nickel avec des TextBox pour naviguer à travers les résultats. Et je cherche à étendre cette façon de faire avec d'autres composant comme des ListBox, ComboBox, ...
Mais je ne sais pas du tout comment faire car je pensais qu'avec la propriété ItemsSource cela fonctionnerait bien.
Soluce pour binder une listbox
J'ai trouvé un moyen d'afficher des résultats sur ma lisbox mais ce n'est pas ce que je voulais faire au départ...
J'ai créé une classe en Linq to SQL : DataClasses1
J'ai rajouté la table dont j'avais besoin dans les sources de données. Le reste a été généré automatiquement (Merci à Microsoft :ccool: )
J'ai rajouté un DataTemplate en xaml. Ca a l'air pas mal pour personnaliser un peu l'affichage :
Code:
1 2 3 4 5 6 7 8 9
| <Window.Resources>
<!-- Data template for the listbox items -->
<DataTemplate x:Key="mon_template">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=test_chiffre}" FontWeight="Bold" />
<TextBlock Margin="5,0,0,0" Text="{BindingPath=test_char}"/>
</StackPanel>
</DataTemplate>
</Window.Resources> |
J'ai lié la propriété ItemTemplate du ListBox à mon DataTemplate
Code:
1 2
| <ListBox HorizontalAlignment="Left" Margin="15,111,0,135" Name="listBox1" Width="175"
ItemTemplate="{StaticResource mon_template}" ></ListBox> |
Et dans le load
Code:
1 2 3
| private void Window_Loaded(object sender, RoutedEventArgs e)
{
} |
J'ai rajouté ces quelques lignes de linq :
Code:
1 2 3 4 5 6
| DataClasses1DataContext dc = new DataClasses1DataContext();
var test_1 = from c in dc.test
select c;
listBox1.ItemsSource = test_1.ToList(); |
Ca fonctionne nickel.
J'ai contourné le problème en n'utilisant pas les converters. Mais je n'ai pas encore réussi à lier la listbox au contenu du textbox.