簡體   English   中英

通過ComboBox綁定DataGrid(PropertyChanged,WPF,綁定)

[英]Binding DataGrid wth ComboBox (PropertyChanged, WPF, Binding)

在UserControl中,將xombo中的ComboBox填充為“ Id”項:

<ComboBox x:Name="cmbId" DisplayMemberPath="Id"/>

CS:

cmbId.ItemsSource = (from q in mydata.test_views
                     select q).ToList();

我正在嘗試將數據填充到DataGrid中:

 <DataGrid x:Name="UGrid" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Auto Name" Binding="{Binding SelectedItem.AutoName, UpdateSourceTrigger=PropertyChanged, ElementName=cmbId}" Width="100"/>
                <DataGridTextColumn Header="Color" Binding="{Binding SelectedItem.Color, UpdateSourceTrigger=PropertyChanged, ElementName=cmbId}" Width="100"/>
            </DataGrid.Columns>
 </DataGrid>

用戶在ComboBox上選擇項目后如何顯示數據“自動名稱和顏色”值?

應該將DataGridItemsSource設置為IEnumerable<T> 如果只想在DataGrid顯示單個項目,則可以處理ComboBoxSelectionChanged事件,並將DataGridItemsSource屬性設置為List<T> ,該List<T>包含ComboBox中的選定項目:

private void cmbId_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    UGrid.ItemsSource = new List<YourEntityType> { cmbId.SelectedItem as YourEntityType };
}

<DataGrid x:Name="UGrid" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Auto Name" Binding="{Binding AutoName, UpdateSourceTrigger=PropertyChanged}" Width="100"/>
        <DataGridTextColumn Header="Color" Binding="{Binding Color, UpdateSourceTrigger=PropertyChanged}" Width="100"/>
    </DataGrid.Columns>
</DataGrid>

您需要在組合框中添加一個事件:

 > <ComboBox x:Name="cmbId" DisplayMemberPath="Id" > SelectionChanged="selectionInComboboxChanged"/> 

然后在selectionInComboboxChanged中,可以獲取選定的cobobox項,然后將其添加到mydata.test_views列表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM