같은 행의 일부 체크 박스가 선택되면 텍스트 상자에서 3 개의 값을 가져 오기위한 코드를 작성하려고합니다. 누구든지 쉬운 (또는 어려운) 방법을 알고 있습니까?체크 박스가 DataGrid에서 체크 된 경우 전체 행 값 가져 오기 C#
내 데이터 그리드는 다음과 같습니다 :
나는 그 후 나는 그 일부 문자열을 얻는 메소드를 호출하고있어, 어딘가에 파일 시스템의 특정 유형 (XML.config)의 파일을 발견로드 버튼이 파일, 하위 문자열을 찾아 3 개의 분리 된 목록에 넣으십시오. 이러한 값은 Type, MapTo 및 Name과 같은 DataGrid에 있습니다. 나는 1 ObservableCollection에 모든 3리스트를 넣어이 작업을 수행하고 그 후 나는이 같은 데이터 그리드 해당 ObservalableCollection을 보내고있다 :
ObservableCollection<Tuple<string, string, string>> _obsCollection = new ObservableCollection<Tuple<string, string, string>>();
public ObservableCollection<Tuple<string, string, string>> MyObsCollection
{
get { return _obsCollection; }
}
tabela.ItemsSource = _obsCollection;
이 바인딩을 보여줍니다 XAML 코드 :
<DataGrid Grid.Column="0" AutoGenerateColumns="False" Height="206" HorizontalAlignment="Left" Margin="12,265,0,0" Name="tabela" VerticalAlignment="Top" Width="556" SelectionChanged="tabela_SelectionChanged" Grid.RowSpan="2" ItemsSource="Binding MyObsCollection">
<DataGrid.Columns>
<DataGridTextColumn Header="Type" Width="122" Binding="{Binding Item1}"/>
<DataGridTextColumn Header="MapTo" Width="122" Binding="{Binding Item2}"/>
<DataGridTextColumn Header="Name" Width="121" Binding="{Binding Item3}"/>
<DataGridTemplateColumn Header="Controller">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding DataGridChecked}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Service">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding DataGridChecked}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="Injection">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding DataGridChecked}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
은 내가 'm 실제로 시도하는 것은 당신이 3 개의 열 모두를 선택하는 것을 볼 수있는 체크 박스를 포함하는 것을 반복하는 것입니다. 그리고 같은 행에 3이 선택되면 그 행에서 3 개의 문자열 값을 어떤 변수로 보낼 필요가 있습니다. 누구든지이 문제를 해결할 수 있습니다. 예를 들어 데이터 그리드의 체크 박스에서 isSelected 속성을 얻는 방법을 모르겠습니다. 많은 연구를하고 있었고 DataGridView에 대한 예는 찾을 수있었습니다. DataGrid에는 거의 아무것도 없었습니다. 대신 Tuple
자신의 클래스를 생성 사용
'ObservableCollection에 <튜플 <문자열, 문자열, 문자열을 >>'- 당신은 정말 그 대신에 적절한 강력한 형식의 데이터 모델을 만들어야합니다 괴물, 제발. –
@HighCore는 의견을 보내 주셔서 감사합니다 ... 저는 아직 초보자이며이를 수행하는 방법을 모르겠습니다 ... 데이터 모델을 만드는 데 유용한 링크 나 튜토리얼을 알고 있습니까? 나는 이런 종류의 코드가 지저분하다는 것을 알고 있지만 나는 여전히 미친 것들을 시도하고 그들을 탐구하고있다. –