C# 使用CollectionViewSource而不是collection直接中断Visual Studio Designer视图?可修复的?

C# 使用CollectionViewSource而不是collection直接中断Visual Studio Designer视图?可修复的?,c#,wpf,C#,Wpf,好吧,我运气不好,因为我做的很多事情都会让设计师崩溃() 当我在datagrid视图中使用集合时,我可以在设计器中看到我生成的所有虚拟内容行,但是当我添加集合视图源以对数据进行分组时,这会停止工作。然后整个集合仅在运行时显示 这是WPF designer的另一个问题吗 复制代码: 视图: 虚拟视图模型: using System.Collections.ObjectModel; namespace CollectionViewSourceDesignerBreak { public

好吧,我运气不好,因为我做的很多事情都会让设计师崩溃()

当我在datagrid视图中使用集合时,我可以在设计器中看到我生成的所有虚拟内容行,但是当我添加集合视图源以对数据进行分组时,这会停止工作。然后整个集合仅在运行时显示

这是WPF designer的另一个问题吗

复制代码:

视图:


虚拟视图模型:

using System.Collections.ObjectModel;

namespace CollectionViewSourceDesignerBreak
{
    public class VMData
    {
        public string Name { get; set; }
        public string MoreInfo { get; set; }

    }
    public class ViewModel
    {
        private ObservableCollection<VMData> _entries = new ObservableCollection<VMData>();
        public ObservableCollection<VMData> Entries
        {
            get { return _entries; }
            set { _entries = value; }
        }

        public ViewModel()
        {
            Entries.Add(new VMData{Name="A", MoreInfo = "Some text"});
            Entries.Add(new VMData{Name="B", MoreInfo = "More text"});
            Entries.Add(new VMData{Name="A", MoreInfo = "Other text"});
        }
    }
}
使用System.Collections.ObjectModel;
命名空间集合ViewSourceDesignerBreak
{
公共类VMData
{
公共字符串名称{get;set;}
公共字符串MoreInfo{get;set;}
}
公共类视图模型
{
私有ObservableCollection _条目=新ObservableCollection();
公共可观测收集条目
{
获取{return\u entries;}
设置{u entries=value;}
}
公共视图模型()
{
添加(新的VMData{Name=“A”,MoreInfo=“Some text”});
添加(新的VMData{Name=“B”,MoreInfo=“More text”});
添加(新的VMData{Name=“A”,MoreInfo=“Other text”});
}
}
}

在Cvs行中加上注释,在设计器中删除内容。

这是一个猜测,但我很确定资源不会继承
DataContext
。您可以使用
d:DesignTimeDataContext
,因为这将在designtime覆盖
DataContext
。没有DesignTimeDataContext,只有d:DataContext。我在window上设置了它,但没有效果。我正在查看它,也许我把它与Silverlight混淆了。我有一个designtime解决方案,但缺点是它在运行时不起作用:S也使用一个名称
+
ItemsSource=“{Binding ElementName=Cvs}”
它在设计器中对我不起作用。我看到了自动生成的列标题(这确实是新的),但3个示例数据条目不可见。你能看见它们吗?
using System.Collections.ObjectModel;

namespace CollectionViewSourceDesignerBreak
{
    public class VMData
    {
        public string Name { get; set; }
        public string MoreInfo { get; set; }

    }
    public class ViewModel
    {
        private ObservableCollection<VMData> _entries = new ObservableCollection<VMData>();
        public ObservableCollection<VMData> Entries
        {
            get { return _entries; }
            set { _entries = value; }
        }

        public ViewModel()
        {
            Entries.Add(new VMData{Name="A", MoreInfo = "Some text"});
            Entries.Add(new VMData{Name="B", MoreInfo = "More text"});
            Entries.Add(new VMData{Name="A", MoreInfo = "Other text"});
        }
    }
}