我有一個WPF應用程序與DataGrid和ListView共享相同的ObservableCollection ItemsSource。當DataGrid的CanUserAddRows屬性爲True時,它會導致ListView顯示DataGrid用來添加新行的額外項目。具有相同itemssource的Datagrid和Listview
如何從DataGrid中獲取額外的行以便不在ListView中顯示?
我嘗試使用上ListView控件的DataTemplate中的觸發器和檢查,如果項目編號爲空或0
`<ListView.ItemTemplate>
<DataTemplate>
<Label Margin="-2,0,0,0" Name="CategoryLabel" >
<TextBlock TextWrapping="Wrap" Text="{Binding categoryName}" Height="46"></TextBlock>
</Label>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding categoryId}" Value="0" > <!-- also tried Value="" -->
<Setter TargetName="CategoryLabel" Property="Visibility" Value="Hidden" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListView.ItemTemplate>`
只是一些指針:創建的ListCollectionView(它的來源是你的ObservableCollection)與'ListCollectionView.Filter'回調,並將其分配到'ListBox.ItemsSource'財產。在過濾器回調,然後檢查由DataGrid添加的佔位符項... – elgonzo
我第二@elgonzo似乎是正確的方法。 –