3 回答

TA貢獻1807條經(jīng)驗 獲得超9個贊
請檢查下面的DataGridComboBoxColumn xaml是否適合您:
<DataGridComboBoxColumn SelectedValueBinding="{Binding CompanyID}" DisplayMemberPath="Name" SelectedValuePath="ID"> <DataGridComboBoxColumn.ElementStyle> <Style TargetType="{x:Type ComboBox}"> <Setter Property="ItemsSource" Value="{Binding Path=DataContext.CompanyItems, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" /> </Style> </DataGridComboBoxColumn.ElementStyle> <DataGridComboBoxColumn.EditingElementStyle> <Style TargetType="{x:Type ComboBox}"> <Setter Property="ItemsSource" Value="{Binding Path=DataContext.CompanyItems, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" /> </Style> </DataGridComboBoxColumn.EditingElementStyle></DataGridComboBoxColumn>
在這里,您可以找到針對您遇到的問題的另一種解決方案:使用帶有WPF DataGrid的組合框

TA貢獻1880條經(jīng)驗 獲得超4個贊
在關(guān)于對MSDN文檔ItemsSource
的DataGridComboBoxColumn
說,只有靜態(tài)的資源,組合框項目靜態(tài)代碼或內(nèi)聯(lián)的集合可以綁定到ItemsSource
:
要填充下拉列表,請首先使用以下選項之一設(shè)置ComboBox的ItemsSource屬性:
靜態(tài)資源。有關(guān)更多信息,請參閱StaticResource標(biāo)記擴展。
一個x:靜態(tài)代碼實體。有關(guān)更多信息,請參見x:靜態(tài)標(biāo)記擴展。
ComboBoxItem類型的內(nèi)聯(lián)集合。
如果我理解正確,則無法綁定到DataContext的屬性。
確實:當(dāng)我在ViewModel中創(chuàng)建CompanyItems
一個靜態(tài)屬性時......
public static ObservableCollection<CompanyItem> CompanyItems { get; set; }
...將ViewModel所在的命名空間添加到窗口中...
xmlns:vm="clr-namespace:DataGridComboBoxColumnApp"
...并將綁定更改為...
<DataGridComboBoxColumn ItemsSource="{Binding Source={x:Static vm:ViewModel.CompanyItems}}" DisplayMemberPath="Name" SelectedValuePath="ID" SelectedValueBinding="{Binding CompanyID}" />
...然后它的工作原理。但將ItemsSource作為靜態(tài)屬性可能有時可以,但并不總是我想要的。
- 3 回答
- 0 關(guān)注
- 4808 瀏覽
添加回答
舉報