2014-09-15 1 views
-1

콤보 상자를 통해 데이터 테이블 (DataGrid 아님)에서 값을 가져 오는 방법은 무엇입니까? 데이터 테이블의 lessonype 열은 모든 콤보 박스 항목입니다. 만약 내가 lessontype "기타"의 비율을 원한다면? 당신이 MVVM을 사용하는 경우행 값이있는 데이터 테이블에서 값을 가져 오는 방법은 C#의 콤보 박스 항목입니까?

lessontype | Rate 

-----------+-------- 

Piano  | 100 

Guitar | 50 

Violin | 200 

Trumpet | 150 
+0

작업해온 코드를 제공해주십시오. –

+0

이 코드를 시도했지만 "열 [rate]을 찾을 수 없습니다."라는 오류 메시지가 표시됩니다. MyCode : DataRow [] filteredRows = dt.Select (string.Format ("{0} LIKE '% {1} – Pikachu

답변

0

, 당신은 당신의 ViewModel의 속성에 콤보 상자를 바인딩 할 수 있습니다

XAML :

<ComboBox ItemsSource="{Binding MyList, Mode=OneWay}" SelectedIndex="{Binding MyIndex}" /> 

의 ViewModel합니다 (에서 INotifyPropertyChanged 인터페이스를 구현해야합니다) :

private int _myList; 
    public List<YourType> MyList 
    { 
     get { return _myList; } 
     set 
     { 
      _myList = value; 
      NotifyPropertyChanged("MyList"); 
     } 
    } 
    private int _myIndex; 
    public int MyIndex 
    { 
     get { return _myIndex; } 
     set 
     { 
      _myIndex= value; 
      NotifyPropertyChanged("MyIndex"); 
     } 
    } 

사용자가 선택한 ComboBox의 항목을 알고 싶을 때마다 MyList [MyIndex] .WhateverIsStoredHere를 사용하여 ComboBox에서 항목을 가져옵니다.

+0

이 코드를 사용해 본 적이 있지만 "열을 찾을 수 없습니다."라는 오류 메시지가 표시됩니다. MyCode : DataRow [] filteredRows = dt.Select (string.Format ("{0}"% {1} % ' ", rate, lessons.Text)); – Pikachu

+0

목록이 계속 변경되면 NotifyPropertychanged 메서드도 사용해야합니다. 작동하는지 알려주세요 :) – Godspark

+0

어떤 목록이 있습니까? lessons은 콤보 박스의 이름입니다. 그래서 내가 선택한 모든 항목은 이미 lessons.text에 저장되어 있습니다. 이것에 대해 내가 맞습니까? 미안 해요, 그냥 초보자입니다. – Pikachu

관련 문제