jjzjj

DataContext

全部标签

c# - XAML 设计器显示属性名称而不是设计器数据 (d :DataContext) when Binding

上下文我希望我的UserControl(RepositoryContainer)在XAMLDesigner上填充数据。我创建了一个名为RepositoryContainerDesignData.xaml的文件(它与RepositoryContainer.xaml位于同一文件夹中)并将其设置为d:DataContext到UserControl。但XAML设计器不显示数据,而是显示属性名称。这是一个最小的例子:设计数据(RepositoryContainerDesignData.xaml)用户控件(RepositoryContainer.xaml)代码隐藏usingSystem.Windo

c# - WPF 用户控件中的 "DataContext = this"有什么问题?

我在某处读到,在用户控件的构造函数中设置DataContext=this是不好的做法(虽然找不到位置)。为什么这是不好的做法?有什么选择? 最佳答案 一般来说,当有人使用您的控件时,他们会希望将它的数据上下文设置为他们自己的View模型类,并将您控件上的属性绑定(bind)到他们的View模型。如果您开始在控件内部乱用数据上下文,并依赖于将其设置为“this”,您将阻止它们的绑定(bind)工作,或者您的控件将无法按预期工作,因为您依赖它没有被改变。假设您有一个用户控件,上面有一堆子控件。您可以做的是将子控件上的DataContex

c# - 从 LINQ DataContext 中的表名获取表数据

我需要从LinqDataContext的表名中获取表数据。代替这个varresults=db.Authors;我需要做这样的事情。stringtableName="Authors";varresults=db[tableName];它可以是DataContext中可用的任何表名。 最佳答案 给定DataContext上下文和stringtableName,你可以说:vartable=(ITable)context.GetType().GetProperty(tableName).GetValue(context,null);

c# - 如何清除 Linq to Sql 上的 DataContext 缓存

我正在使用LinqtoSql查询某些数据库,我只使用Linq从数据库中读取数据,并通过其他方式对其进行更改。(这是无法更改的,这是我们正在扩展的应用程序的限制,所有更新都必须通过其sdk)。这很好,但是我遇到了一些缓存问题,基本上,我使用Linq查询一行,然后通过外部方式删除它,然后如果我再次使用linqi查询该行,我会在外部创建一个新行得到了旧的(缓存的)数据。我无法关闭对象跟踪,因为这似乎会阻止数据上下文自动加载相关属性(外键)。有什么方法可以清除DataContex缓存吗?我在网上找到了一个方法,但它似乎不安全:http://blog.robustsoftware.co.uk/2

C#/WPF : Binding Combobox ItemSource in Datagrid to element outside of the DataContext

我想做以下事情:publicListPreLoadedUserList{get;set;}publicListSomeDataRowList{get;set;}publicclassUsers{publicintAge{get;set;}publicstringName{get;set;}}publicclassSomeDataRowList{publicintUserAge{get;set;}现在我的(WPF工具包)DataGrid看起来像这样:现在我的问题是,PreLoadedUserList在ItemSource(SomeDataRowList)之外,我不知道如何绑定(bind)

c# - 为什么在 XAML 中绑定(bind) MainWindow datacontext 无法像在代码隐藏中使用 this.datacontext=this 绑定(bind)一样?

我正在尝试使用数据绑定(bind)将ObservableCollection绑定(bind)到DataGrid的ItemsSource,因为我了解了WPF和其他东西。在代码隐藏中,我可以使用this.DataContext=this;或bloopDataGrid.DataContext=this;设置DataContext。那很好,花花公子。我想我可以试试类似的东西在我的主窗口中,但这会导致堆栈溢出异常,如thisquestion中所述。.好吧,这有点道理。看完this以及其他在窗口的XAML代码中尝试DataContext="{BindingRelativeSource={Relat

c# - 跨多个线程的 Linq-to-SQL DataContext

如何跨多个线程处理Linq-to_SQLDataContext?我应该创建一个全局静态DataContext供所有线程使用并在最后提交更改,还是应该为每个线程创建一个Context并将该实例用于该线程内的所有内容? 最佳答案 DataContext不是线程安全的;直接从多个线程使用它会导致#fail;具有全局静态数据上下文会导致#fail并且会导致不受控制的内存增长(数据上下文包括身份管理器和每个获取对象的更改跟踪器;这只会增长随着时间的推移,随着越来越多的物体被触摸)理想情况下,数据上下文应该用于一个工作单元;旋转一个;做某事(在

c# - 处理后访问的 DataContext

我正在使用ASP.NET4.0。我得到以下代码,返回错误“无法访问已处置的对象。对象名称:'DataContext在Dispose之后访问。'。"publicIEnumerableGetHeaders(){using(NSFChecksDataContextcontext=DataContext){IEnumerableheaders=(fromhincontext.BatchHeadersselecth);returnheaders;}}如果我将其更改为:publicIEnumerableGetHeaders(){using(NSFChecksDataContextcontext=D

c# - 为什么重用 DataContext 会对性能产生负面影响?

经过fairamountofresearch还有一些errors,我修改了我的代码,以便在每次查询数据库或插入数据时创建一个新的DataContext。并且频繁查询数据库-对于处理的25万笔交易中的每笔交易,在插入交易之前查询数据库以获得客户ID、部门ID和类别。所以现在我正在尝试优化代码,因为它每秒只处理大约15笔交易。我删除了一些无关的查询并添加了一些索引并将其提高到每秒30个。然后我想即使每个人都说DataContext是轻量级的,但每次事务创建一个新的4次还是要花一些钱,所以我尝试重用DataContext。令我惊讶的是,重用上下文会导致性能下降到每秒10个事务!为什么会这样?

c# - 将 linq 查询转换为字符串数组 - C#

将单列linq查询转换为字符串数组的最有效方法是什么?privatestring[]WordList(){DataContextdb=newDataContext();varlist=fromxindb.Wordsorderbyx.Wordascendingselectnew{x.Word};//returnstringarrayhere}注意-x.Word是一个字符串 最佳答案 我更喜欢lambda风格,你真的应该处理你的数据上下文。privatestring[]WordList(){using(DataContextdb=new