オブジェクトのリストからコンボボックスにデータをバインドする方法を学ぶためだけに、この小さなプログラムを実行しています。私がやりたいことは、コンボボックスにあるいくつかの単語の翻訳をテキストブロックに表示することです。コンボボックスには英語の単語が必要で、テキストブロックにはスペイン語が必要です。
そのために、 xaml で cmbBox1 というコンボボックスと tb1 というテキストブロックを作成しました。
次に、クラス「単語」を作成しました。
public class word
{
public string english { get; set; }
public string spanish { get; set; }
}
そして、3 つの単語を含むリスト:
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
// Creation of a list of objects of class "word"
List<word> mydictionary = new List<word>();
word word1 = new word();
word1.english = "Hello";
word1.spanish = "Hola";
word word2 = new word();
word2.english = "Goodbye";
word2.spanish = "Adios";
word word3 = new word();
word3.english = "How are you?";
word3.spanish = "¿Qué tal?";
mydictionary.Add(word1);
mydictionary.Add(word2);
mydictionary.Add(word3);
//Adding the objects of the list mydictionary to combobox <---
foreach (word myword in mydictionary)
{
cmbBox1.Items.Add(myword);
}
}
そしてint XAML私は私のコンボボックスのためにこれを持っています:
<ComboBox x:Name="cmbBox1" HorizontalAlignment="Left" Margin="133,122,0,0" VerticalAlignment="Top" Width="120"
ItemsSource="{Binding Path=word}"
DisplayMemberPath="english"
SelectedValuePath="english"
SelectedValue="{Binding Path=word}" />
プロパティ「英語」をコンボボックスに表示し、プロパティ「スペイン語」をテキストブロックに表示したいと思います。ユーザーがコンボボックス内の単語をクリックしたときに、MessageBox.Show("You selected the word" + word1.english) などの別のメソッドが実行されると便利です。
このすべての目的は、より複雑なことを行う方法を学ぶことです。データのいくつかのチャネルを含むテキスト ファイルをロードします。各チャネルには多数のプロパティがあり、チャネルを選択してプロットできるようにしたいと考えています。 . どうもありがとうございました。