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