我有一个MainWindow.xaml文件:
<Window.Resources>
<CollectionViewSource x:Key="cvs"
Source="{Binding Source={StaticResource ResourceKey=DetailsCollection}}" />
<CollectionViewSource x:Key="DetailScopes">
<CollectionViewSource.Source>
<ObjectDataProvider
MethodName="GetValues"
ObjectType="{x:Type system:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="entities:DetailScope" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</CollectionViewSource.Source>
</CollectionViewSource>
<DataTemplate x:Key="AccountDetail"
DataType="{x:Type entities:AccountDetail}">
<DockPanel>
<ComboBox
DockPanel.Dock="Left"
ItemsSource="{Binding Source={StaticResource ResourceKey=DetailScopes}}"
SelectedItem="{Binding Path=Scope}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock
Text="{Binding Converter={StaticResource DetailScopeConverter}}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<TextBox Text="{Binding Path=Value}" />
</DockPanel>
</DataTemplate>
</Window.Resources>
...
<ListBox
ItemTemplate="{StaticResource ResourceKey=AccountDetail}"
ItemsSource="{Binding Source={StaticResource ResourceKey=cvs}}" />
Run Code Online (Sandbox Code Playgroud)
和它的代码隐藏类,我在其中为详细信息范围定义了过滤器:
public class MainWindow
{
public MainWindow()
{
CollectionViewSource detailScopes;
InitializeComponent();
// Attach filter to the collection view source
detailScopes …Run Code Online (Sandbox Code Playgroud) 我有一个viewmodel包含两个定义的CollectionViews.
一个我用于导航和数据输入/编辑.另一个我想用于过滤目的,并在表单上的一些Listview中显示过滤.
当我在observablecollection上应用过滤时,我不希望主视图(用于DataEntry目的)受到影响.
提前致谢!
我有一个TreeView使用ListCollectionView定制IComprarer和现场塑造订购其孩子.当TreeViewItem在视图中重新排序当前选中的时候,我希望TreeView自动滚动到TreeViewItem新的位置.但是,在ListCollectionView应用新排序时,我找不到通知的方法,并且我想要的行为似乎没有内置到TreeViewControl.
有没有办法在ListCollectionView重新计算排序顺序时收到通知?
我正在尝试使用CollectionViewSource来显示一些数据,我看到的所有示例/教程都有一个自定义类,它们在另一个类中使用,它继承自ObservableCollection.我是使用CollectionViewSource的新手,这只是我的第三个MVVM实现,所以我可能会误解编程模式,但我的问题是:我在哪里放置ObservableCollection类和/或自定义类?
我觉得他们应该进入模型,但后来我不确定什么被绑定到View.我只是将它们构建为外部类,然后在Model/ViewModel中引用它们吗?
任何帮助表示赞赏