第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在WPF DataGrid中綁定ComboBoxColumn的ItemsSource

在WPF DataGrid中綁定ComboBoxColumn的ItemsSource

吃雞游戲 2019-07-26 17:07:29
在WPF DataGrid中綁定ComboBoxColumn的ItemsSource我有兩個簡單的Model類和一個ViewModel ...public class GridItem{     public string Name { get; set; }     public int CompanyID { get; set; }}public class CompanyItem{     public int ID { get; set; }     public string Name { get; set; }}public class ViewModel{     public ViewModel()     {         GridItems = new ObservableCollection<GridItem>() {             new GridItem() { Name = "Jim", CompanyID = 1 } };         CompanyItems = new ObservableCollection<CompanyItem>() {             new CompanyItem() { ID = 1, Name = "Company 1" },             new CompanyItem() { ID = 2, Name = "Company 2" } };     }     public ObservableCollection<GridItem> GridItems { get; set; }     public ObservableCollection<CompanyItem> CompanyItems { get; set; }}......和一個簡單的窗口:<Window x:Class="DataGridComboBoxColumnApp.MainWindow"         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"         Title="MainWindow" Height="350" Width="525">     <Grid>         <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding GridItems}" >             <DataGrid.Columns>                 <DataGridTextColumn Binding="{Binding Name}" />                 <DataGridComboBoxColumn ItemsSource="{Binding CompanyItems}"                                     DisplayMemberPath="Name"                                     SelectedValuePath="ID"                                     SelectedValueBinding="{Binding CompanyID}" />             </DataGrid.Columns>         </DataGrid>     </Grid></Window>但是這給了我調(diào)試器輸出中的另一個錯誤:System.Windows.Data錯誤:4:無法找到綁定源,引用'RelativeSource FindAncestor,AncestorType ='System.Windows.Window',AncestorLevel ='1''。BindingExpression:路徑= CompanyItems; 的DataItem = NULL; target元素是'DataGridComboBoxColumn'(HashCode = 1150788); target屬性是'ItemsSource'(輸入'IEnumerable')問題:如何將DataGridComboBoxColumn的ItemsSource綁定到ViewModel的CompanyItems集合?有可能嗎?提前感謝您的幫助!
查看完整描述

3 回答

?
函數(shù)式編程

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的組合框


查看完整回答
反對 回復(fù) 2019-07-26
?
慕村225694

TA貢獻1880條經(jīng)驗 獲得超4個贊

關(guān)于對MSDN文檔ItemsSourceDataGridComboBoxColumn說,只有靜態(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)屬性可能有時可以,但并不總是我想要的。


查看完整回答
反對 回復(fù) 2019-07-26
  • 3 回答
  • 0 關(guān)注
  • 4808 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號