【发布时间】:2019-02-28 10:00:52
【问题描述】:
我有两个 WPF 元素绑定到同一个 ObservableCollection。一种是Datagrid,一种是ListBox。当 Datagrid 用于对列进行排序(使用内置列标题)时,该操作会将列表框中的项目按相同的顺序排列。换句话说,Datagrid 中的排序操作似乎影响了基础集合的排序。有没有办法禁用这种行为?
这是 Datagrid 的 XAML:
<DataGrid
IsReadOnly="True">
>
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding no}" >
<DataGridTextColumn.Header>
<TextBlock>
File<LineBreak/>No.
</TextBlock>
</DataGridTextColumn.Header>
</DataGridTextColumn>
<DataGridTextColumn
Header="Name"
Binding="{Binding fileName}" />
<DataGridTextColumn Binding="{Binding channels}" >
<DataGridTextColumn.Header>
<TextBlock TextAlignment="Center">
Channels<LineBreak/>[#]
</TextBlock>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
和列表框:
<ListBox
SelectedIndex="{Binding fileListSelectedIndex}"
SelectedItem="{Binding fileListSelectedItem}"
>
<ListBox.Resources>
<DataTemplate DataType="{x:Type local:FileListItem}">
<TextBlock Text="{Binding Path=fileName}"/>
</DataTemplate>
</ListBox.Resources>
</ListBox>
最后是绑定代码:
filelist.ItemsSource = vm.fileList;
multiFileParamGrid.ItemsSource = vm.fileList;
【问题讨论】:
标签: wpf data-binding datagrid