WPF 응용 프로그램에 Datagrid 컨트롤이 있고이 컨트롤을 주 윈도우 클래스의 ObservableCollection 속성에 바인딩하려고합니다. 내가 바인딩하기 위해 노력하고있어 속성은 다음과 같이 정의된다WPF ItemsSource Binding
private ObservableCollection<RequestResult> m_SentRequests = new ObservableCollection<RequestResult>();
public ObservableCollection<RequestResult> SentRequests { get { return m_SentRequests; } }
내 데이터 그리드는 그룹에있는하여 MainWindow를로 설정 데이터 컨텍스트가 있습니다
<GroupBox Header="Results" Height="275" HorizontalAlignment="Stretch" Margin="0,305,0,0" Name="grpResults" VerticalAlignment="Top" Width="712" DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=my:MainWindow, AncestorLevel=1}}">
<Grid>
<DataGrid AutoGenerateColumns="False" Height="246" HorizontalAlignment="Stretch" Margin="6,6,6,0" Name="dgResults" VerticalAlignment="Top" ItemsSource="{Binding Path=SentRequests}" DataContext="{Binding}" IsSynchronizedWithCurrentItem="True" />
</Grid>
</GroupBox>
문제 나 데 속성 창에서 SentRequests를 ItemsSource로 선택한 후에도 "Edit Property-Bound Columns"옵션을 선택할 수 없습니다. 이 작업을 수행하려면 먼저 ItemsSource를 설정해야합니다. "대화 상자가 나타납니다. "열 생성"및 "열 제거"를 선택하면 같은 오류가 발생합니다. 마치 대화 상자의 ItemsSource 속성에서 아무 것도 설정하지 않은 것입니다.
AutoGenerateColumns를 true로 설정할 수 있으며 표시하려는 열이 아니라 내 데이터가 바인딩되는 것을 볼 수 있습니다.
저는 WPF를 처음 접했고 Windows 서비스 테스트를위한 빠른 테스트 응용 프로그램으로 작성했습니다.
내가 뭘 잘못하고 있는지 알아?
'DataContext = "{Binding}"'DataGrid에서 중복되는 것은 생각합니다. 왜냐하면 일반적으로 DataContext가 상속되기 때문입니다. –
@ H.B. 고마워, 나는 그걸 정리했다. 그것은 차이를 만들지 않았습니다 (당신이 기대하지는 않았습니다). 아마 여러 물건을 시험해 보는 나 같은 인공물. – Redbaran