【发布时间】:2016-07-15 16:52:54
【问题描述】:
我在 C# WPF 项目的 ComboBox 中有一个 TextBlock,它绑定到“信封”项目列表,这些项目有一个字符串“名称”和一个双“重量”属性,我希望看到显示前者在文本块中。
当我运行我的程序时,ComboBox 出现,其中没有任何文本。它正确地包含三个未标记的项目,如果我查看 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;
}
}
【问题讨论】:
标签: c# wpf data-binding combobox textblock