C#WPFプロジェクトのComboBoxにTextBlockがあり、 'Name'とdouble 'Weight'プロパティを持つ 'Envelope'アイテムのリストにバインドされています、私はTextBlockに表示したいと思っています。ComboBoxのTextBlockにバインドされた文字列が表示されない
私のプログラムを実行すると、コンボボックスにテキストが表示されずに表示されます。適切に3つのラベルなしアイテムがあり、ComboBoxのItemsSourceまたはSelectedItemを表示すると、適切な値が表示され、ComboBoxのSelectedItemとやり取りする他のコードは適切に動作します。唯一動作しないのは、TextBlockにテキストが含まれていないことです。 "{Binding Name}"
を"au ghdfjlnvgmumar"
に置き換えると、適切な文字化けした文字がComboBoxに表示されるため、バインディングには問題があります。何が問題なのですか?どうすれば回避できますか?
関連するコード:
XAML:
<ComboBox Name="EnvelopeList" HorizontalAlignment="Center" Width="200" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
のC#:
//main window code
public MainWindow()
{
InitializeComponent();
envelopes = new List<Envelope>();
envelopes.Add(new Envelope("TEST", 0));
envelopes.Add(new Envelope("HI", 10));
EnvelopeList.ItemsSource = envelopes;
}
//Envelope class
class Envelope
{
public string Name;
public double Weight;
public Envelope()
{
Name = "[None]";
Weight = 0;
}
public Envelope(string n, double w)
{
Name = n;
Weight = w;
}
public override string ToString()
{
return Name;
}
}
ありがとうございます。私はできるだけ受け入れます。 –