我在我的WPF应用程序中有一个Datagrid控件,我试图将该控件绑定到主窗口类中的ObservableCollection属性。我试图绑定的属性定义如下:
private ObservableCollection<RequestResult> m_SentRequests = new ObservableCollection<RequestResult>();
public ObservableCollection<RequestResult> SentRequests { get { return m_SentRequests; } }
我的数据网格在一个分组中,其中数据上下文设置为主窗口:
<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后,我仍然无法选择“编辑属性绑定列”选项。我得到了一个“在执行此操作之前,您必须设置ItemsSource”的对话框。当选择“生成列”和“删除列”时,我也会收到相同的错误。就好像我没有为我的对话框设置任何ItemsSource属性一样。
我可以将AutoGenerateColumns设置为true,并且我看到我的数据已经绑定(但不是我想要显示的列)。
我对WPF非常陌生,我只是编写这个快速测试应用程序来测试Windows服务。
有人知道我在这里做错了什么吗?