2011-11-07 3 views
0

DataGrid에서 데이터를 추출하는 데 어려움이 있습니다. DataGrid에서 selectchange 이벤트를 사용하고 있었기 때문에. 선택한 행 및 열 색인을 가져올 수있었습니다. 하지만 DataGrid 또는 DataGridrow 또는 selectedcells에서 정확한 데이터를 가져올 수있는 속성을 찾을 수 없습니다. 너희들에게 충고를 듣기를 희망한다.wpf에서 DataGrid에서 데이터를 추출하는 방법은 무엇입니까?

+1

구체적으로 말하십시오 - 처음부터 그리드의 ItemsSource를 사용할 수없는 이유는 무엇입니까? –

+0

item source는 목록이며 그 요소는 DataGrid의 comboboxcolumn에 대한 내용입니다. 그래서 나는 사용자가 선택한 가치를 얻고 싶다. –

+0

DataGrid selectionchanged 때 DataGrid의 "스냅 샷"을 얻는 것이 한 가지 방법이라고 생각합니다. 그러나 나는 그것을위한 재산을 찾을 수 없었다. 또 다른 방법은? (나는 잘 모르겠다) 구속력을 지니고있다. 문자열에 comboboxcolumn을 사용하여 텍스트 바인딩을 사용하고 선택 항목이 변경되면 문자열을 가져오고 싶습니다. 하지만 어떻게할지는 모르겠다. –

답변

2

, 다음의 selectedItem은 ItemsSource에있는 항목이 될 것입니다 :

코드는 다소 다음과 같은 같아야합니다.

<DataGrid ItemsSource="{Binding MyData}" AutoGernateColumns="False"> 
    <DataGrid.Columns> 
     <DataGridComboBoxColumn ItemsSource="{Binding Path=DataContext.ComboBoxOptions, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" 
           DisplayMemberPath="Name" 
           SelectedValuePath="Id" 
           SelectedValueBinding="OptionId" /> 
    </DataGrid.Columns> 
</DataGrid> 

귀하의 데이터 그리드에 대한의 DataContext는

ObservableCollection<SomeItem> MyData { get; set; } 
ObservableCollection<Option> ComboBoxOptions{ get; set; } 

SomeItem 클래스는 OptionId의 속성을 것 포함하고 것 :

당신은 선택 상자를 사용하여 위의 코멘트를했다, 그래서 여기에 예입니다 Option 클래스는 이고 IdName 필드를 갖습니다. 당신은 데이터 그리드에서 항목을 선택하면이 예에서

DataGrid.SelectedItem이 포함됩니다 WPF에서 SomeItem

이 기억하십시오, 당신의 데이터 (의 DataContext가) 응용 프로그램이며, 선택 상자, 텍스트 상자, DataGrids를 같이 당신의 UI 요소, 등등은 모두 사용자가 귀하의 데이터와 상호 작용할 수 있도록하는 예쁜 인터페이스입니다

0

MouseDoubleClick 이벤트에서 dataGrid1.SelectedIteam을 Object로 사용하십시오. 데이터를 포함하는 ItemsSource에 데이터 그리드 바인딩

private void dataGrid1_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
    { 
     edit(this.dataGrid1.SelectedItem as YourObject); 
    } 
관련 문제