我在我的WPF應用程序中有一個Datagrid控件,我試圖將該控件綁定到我的主窗口類中的ObservableCollection屬性。我想綁定到財產的定義是:WPF ItemsSource綁定
private ObservableCollection<RequestResult> m_SentRequests = new ObservableCollection<RequestResult>();
public ObservableCollection<RequestResult> SentRequests { get { return m_SentRequests; } }
我的DataGrid是一組由具有在DataContext設置到主窗口:
<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服務的快速測試應用程序。
任何人知道我在做什麼錯在這裏?
DataGrid中的'DataContext =「{Binding}」'是多餘的,我想,因爲通常DataContext被繼承。 – 2011-03-28 19:48:05
@ H.B。謝謝,我做了清理。它沒有什麼區別(不是你期望的)。可能是我嘗試多件事的一個神器。 – Redbaran 2011-03-28 20:03:08