我已经设法使用带有数据绑定的TextBlock项目将不同的String Date放入ComboBox,然后我想在我的ComboBox中获取所选项目的文本,这是我的WPF代码:
<ComboBox ItemsSource="{Binding ListProgram, ElementName=Window}" x:Name="date">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Name="test" Text="{Binding Date}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
我尝试了这个,但它没有显示任何内容:
Console.WriteLine(date.Text);
我也尝试了这个,它仍然无法正常工作:
Console.WriteLine(test.Text);
非常感谢法国初学者程序员。
答案 0 :(得分:1)
date
是ComboBox
,因此date.ToString()
返回System.Windows.Controls.ComboBox
是很自然的。
您希望获得所选日期项的值,而不是控件本身。
首先,您可以省略DataTemplate
。 strings
会自动转为TextBoxes
。只需在您的案例中指定DisplayMemberPath
和SelectedValuePath
("Date"
,但您可以选择不同的属性),WPF将负责其余的工作。
DisplayMemberPath
告诉ComboBox项目的哪个属性用于显示项目。 SelectedValuePath
告诉ComboBox将哪个属性用于SelectedValue
<ComboBox ItemsSource="{Binding ListProgram, ElementName=Window}"
DisplayMemberPath="Date" SelectedValuePath="Date" x:Name="date">
</ComboBox>
在您的代码中,您可以使用以下内容获取所选项目(或其值)
date.SelectedValue // will return the "Date" property of the selected Item
date.SelectedItem // will return the item itself
date.Text // will return the string it is displaying