2017-03-02 51 views
1

我已經成功地將一個List設置爲Combobox的ItemsSource,它顯示了我期望它的項目。還可以通過指定索引來設置默認的SelectedItem。但是我在將選定項目保存到Sqlite中的字符串時遇到了麻煩。當顯示保存的Sqlite值時,它只顯示類名。我試着只保存索引,而後來顯示的是正確的索引,所以我確實認爲我得到了正確的項目,但是當我保存實際項目時,它顯然不是正確的內容。現在只是學習幾個星期......任何人都可以提出一個轉換或其他方式嗎?UWP/C#如何將一個Comboboxitem選擇保存爲Sqlite中的字符串

XAML:

<ComboBox x:Name="boxMethod" 
       Header="Payment Method:" 
       Width="200" 
       SelectionChanged="boxMethod_SelectionChanged"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding NickName}"/> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
    </ComboBox> 

C#主:

this.boxMethod.ItemsSource = payMethod.GetPayMethods(); 

    transaction.PmtMethod  = Convert.ToString(boxMethod.SelectedValue); 

C#顯示別處:

txtPmtMethod.Text = Convert.ToString(selectedTransaction.PmtMethod); 

回答

1

如果調試在你的C#主的第二行,你會notize那PmtMethod是類名。 boxMethod.SelectedValue是你的類的一個實例,如果你將它轉換爲一個字符串,你會得到類名。 您可以使用(MyClass)boxMethod.SelectedValue將其轉換爲類的實例,然後調用包含要保存的值的屬性。

就像一個信息。您應該瞭解MVVM。這是描述如何編寫WPF應用程序的模式。

+0

謝謝。 PmtMethod可能會突出顯示爲上面的類,但它只是一個字符串字段。不確定您的額外信息是否適用,因爲它不是課程。欣賞幫助...... – relayagent

+1

這不是我想要解釋的。我在談論boxMethod.SelectedValue。調試並看看這個有什麼價值。這將是一個類的實例。如果你將一個類作爲一個字符串進行轉換,你將獲得每個默認的類名。 –

相關問題