2011-06-27 389 views
2

我是.NET新手,正在開發我的第一個Silverlight應用程序。Silverlight組合框SelectedItem綁定問題

我有一個用於將新客戶添加到一個GridView一個Silverlight子窗口,並具有以下代碼:

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對象包含一個名字和姓氏屬性。

僅用於測試目的,我想通過組合框添加姓氏,但問題是,當我將姓氏屬性綁定到組合框選定項目時,保存到姓氏屬性的值是字符串System.Windows .Controls.ComboBoxItem而不是SelectedItem文本值。

我如何將文本從組合框中的selectedItem保存到姓氏屬性中?

+0

您是否嘗試選擇的值,而不是選定的項目? –

+0

是的,仍將相同的值保存到屬性:System.Windows.Controls.ComboBoxItem – randoms

+0

請參閱下面的答案。它應該工作 –

回答

2

試試這個

<ComboBox x:Name="cb1" SelectedValue="{Binding Lastname, Mode=TwoWay}" SelectedValuePath="Content"> 
0

使用ComboBoxName.items.SelectedBoxItem

是SelectedBoxItem代替的SelectedItem