2013-09-28 2 views
0

XAML에 ListView을 만들었지 만 선택한 행의 데이터를 가져 오는 방법을 모르겠습니다. 누구든지 나를 도울 수 있습니까?ListView에서 데이터 가져 오기

<ListView x:Name="myListView" Margin="10,71,10,45" SelectionChanged="Selector_OnSelectionChanged"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Test1" DisplayMemberBinding="{Binding test1}" Width="400" /> 
      <GridViewColumn Header="Test2" DisplayMemberBinding="{Binding test2}" Width="120"/> 
      <GridViewColumn Header="Test3" DisplayMemberBinding="{Binding test3}" Width="100"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

답변

1

당신은 데이터 구조까지

1 설치 다음을 수행해야합니다 :

여기 내 XAML입니다 당신은 뒤에 또는 XAML 코드에서 그것을 할 수 있습니다. 데이터는 컬렉션 유형이어야하며 test1/test2/test3 데이터 멤버가있는 유형의 컬렉션이 있어야합니다.

var data = new ObservableCollection<Test>(); 
data.Add(new Test {test1="abc", test2="abc2", test3="abc3"}); 
data.Add(new Test {test1="bc", test2="bc2", test3="bc3"}); 
data.Add(new Test {test1="c", test2="c2", test3="c3"}); 

Data = data 

public ObservableCollection<Test> Data {get;set;} 

은 ListView에의 DataContext에에 재산

당신은 모음 (1 단계에서 설정)를 할당 할 필요가

2를 통해 데이터를 노출. 당신은

<ListView x:Name="myListView" DataContext={Binding Data} Margin="10,71,10,45" SelectionChanged="Selector_OnSelectionChanged" > 

3 당신은 또한 당신이 위의 단계를 완료 한 후

<Application 
    x:Class="BuildAssistantUI.App" 
    xmlns:local="clr-namespace:MainViewModel" 
    StartupUri="MainWindow.xaml" 
    > 

    <Application.Resources> 
     <local:MainViewModel x:Key="MainViewModel" /> 
    </Application.Resources> 


<Window DataContext="{StaticResource MainViewModel}" > 

를 보려면 모델 클래스 (Data 포함)을 연결해야합니다 (XAML에서하지만, 바람직는 코드 숨김에서 할 수 있습니다) ListView에있는 데이터를 볼 수 있습니다.


익명 형식의 개체에서 속성에 액세스하는 방법은 Reflection을 통해 수행됩니다.

다음은 예를 들어

object item = new {test1="test1a", test2="test2a", test3="test3a"}; 
var propertyInfo = item.GetType().GetProperty("test1"); // propertyInfo for test1 
var test1Value = propertyInfo.GetValue(item, null); 
+0

감사합니다,하지만 난 데이터를 추가하는 방법을 알고있다. 내가 코드로 선택한 행의 데이터를 얻을 수있는 방법을 알아야합니다 – Eknoes

+0

나는 내가 질문을 잘못 읽은 것 같아요. [ListView.SelectedItems] (http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.selecteditems.aspx) 속성 – Tilak

+0

이 코드를 사용하면 선택한 전체 데이터를 얻을 수 있습니다. row : myListView.SelectedItems [0]; 단 하나의 열의 데이터를 얻으려면 어떻게해야합니까? – Eknoes