2017-03-02 1 views
1

List를 성공적으로 Combobox의 ItemsSource로 설정하면 예상 한 항목이 표시됩니다. 또한 인덱스를 지정하여 기본 SelectedItem을 설정할 수 있습니다. 하지만 Sqlite에서 선택한 항목을 문자열에 저장하는 데 문제가 있습니다. 저장된 Sqlite 값을 표시 할 때 클래스 이름 만 표시됩니다. 대신 인덱스 만 저장하고 오른쪽 인덱스는 나중에 표시되므로 실제 항목을 저장할 때 올바른 항목을 얻고 있다고 생각하지만 명확한 내용이 아닙니다. 지금 몇 주 동안 배우는 것만으로 ... 누구든지 전환이나 다른 방법으로 제안 할 수 있습니까?UWP/C# Sqlite에서 문자열로 Comboboxitem 선택을 저장하는 방법

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에 대해서 이야기하고있다. 디버그하고이 값이 무엇인지보십시오. 그것은 클래스의 인스턴스가 될 것입니다. 클래스를 문자열로 캐스팅하면 기본값 당 클래스 이름을 얻습니다. –

관련 문제