데이터 테이블을 가질 때 데이터 테이블의 각 열에 DataGrid의 각 DataGridtextColumn을 바인딩하려고하는데 문제가 있습니다.Datagridtextcolumn 데이터 테이블에 바인딩
내 코드 내 XAML 측
<Grid >
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=.}" Name="dgrid" SelectionChanged="dgrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Path=id}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
그리고 내 측면 코드에 따라서
public class Packet
{
public Header header { get; set; }
public Frame frame { get; set; }
public Tail tail { get; set; }
public String id { get; set; }
public Packet(String id,Header header, Frame frame, Tail tail)
{
this.id = id;
this.header = header;
this.frame = frame;
this.tail = tail;
}
}
아래와 같다 DS는 하나의 데이터 테이블을 갖는 데이터 집합이다. 각 행은 헤더 프레임 테일과 ID에 해당하는 4 열의 패킷입니다. ID를 올바르게 바인딩하려고합니다. 그러나 ID 번호는 데이터 그릿에 표시 할 수 없습니다.
xaml 쪽에서 datagridtextcolumn을 사용하지 않으면 실제로 올바른 데이터가 표시됩니다. 하지만 내가 원했던 것은 datatable에 대한 xaml 쪽 바인딩을 수행하는 것입니다. 당신이 경우에 Packet
같은 모델 클래스가있는 경우
아무 문제가없는 것 같습니다. 디버그 창에서 바인딩에 대한 첫 번째 예외를 볼 수 있습니까? 또는'ds.Tables [0]'인스턴스가 올바르게 초기화되었는지 확인 했습니까? –
@edelweiss DataGrid의 바인딩을 제거한 다음 코드에서 수행하십시오. –
@jwJung 내가 그것을 실행할 때, 나는 출력 창에서 이것을 보았다. System.Windows.Data 오류 : 40 : BindingExpression 경로 오류 : 'id'속성이 'object' ''DataRowView '(HashCode = 8381127)'에 없습니다. ' BindingExpression : Path = id; DataItem = 'DataRowView'(HashCode = 8381127); 대상 요소는 'TextBlock'입니다 (Name = ''); target 속성은 'Text'('String'유형)입니다. 그 말이 맞지 않았 음을 의미합니까? – edelweiss