Silverlight 组合框 SelectedItem 绑定问题
Posted
技术标签:
【中文标题】Silverlight 组合框 SelectedItem 绑定问题【英文标题】:Silverlight combobox SelectedItem binding issue 【发布时间】:2011-06-27 09:52:00 【问题描述】:我是 .NET 新手,正在开发我的第一个 Silverlight 应用程序。
我有一个 Silverlight 子窗口,用于将新客户添加到 gridview,并具有以下代码:
namespace FrontEnd.Views
public partial class NewCustomer : ChildWindow
public DataTransfer.Customer MyCustomer get; set;
public NewCustomer()
InitializeComponent();
MyCustomer = new DataTransfer.Customer();
NewCustomerForm.CurrentItem = MyCustomer;
NewCustomerForm.BeginEdit();
private void OKButton_Click(object sender, RoutedEventArgs e)
NewCustomerForm.CommitEdit();
this.DialogResult = true;
private void CancelButton_Click(object sender, RoutedEventArgs e)
MyCustomer = null;
NewCustomerForm.CancelEdit();
this.DialogResult = false;
<dataform:DataForm x:Name="NewCustomerForm" Header="New Customer" AutoGenerateFields="False" Margin="0,12,0,0" MinWidth="290" HorizontalAlignment="Left">
<dataform:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<dataform:DataField Label="First name">
<TextBox Text="Binding Firstname, Mode=TwoWay"/>
</dataform:DataField>
<dataform:DataField Label="Last name">
<ComboBox x:Name="cb1" SelectedItem="Binding Lastname, Mode=TwoWay">
<ComboBoxItem Content="NameOne"></ComboBoxItem>
<ComboBoxItem Content="NameTwo"></ComboBoxItem>
</ComboBox>
</dataform:DataField>
</StackPanel>
</DataTemplate>
</dataform:DataForm.EditTemplate>
</dataform:DataForm>
MyCustomer 对象包含 Firstname 和 Lastname 属性。
仅出于测试目的,我想通过组合框添加姓氏,但问题是,当我将姓氏属性绑定到组合框选定项时,保存到姓氏属性的值是字符串 System.Windows。 Controls.ComboBoxItem 而不是 SelectedItem 文本值。
如何将组合框中 selectedItem 中的文本保存到 Lastname 属性?
【问题讨论】:
你试过选择值而不是选择项吗? 是的,仍然将相同的值保存到属性:System.Windows.Controls.ComboBoxItem 请看下面的答案。它应该工作 【参考方案1】:试试这个
<ComboBox x:Name="cb1" SelectedValue="Binding Lastname, Mode=TwoWay" SelectedValuePath="Content">
【讨论】:
【参考方案2】:使用 ComboBoxName.items.SelectedBoxItem
那是 SelectedBoxItem 而不是 SelectedItem
【讨论】:
以上是关于Silverlight 组合框 SelectedItem 绑定问题的主要内容,如果未能解决你的问题,请参考以下文章
当组合框打开时,Silverlight Combobox 触发 KeyDown 事件