我的表格有很多标签。每个选项卡都有许多控件文本框,组合框,数据网格和e .t.c.我以这种方式将表单绑定到一个数据源
this.DataContext=MyClassInstance
但是这样我的表格打开速度很慢。大约一分钟。
当我对上面的代码发表评论时,表单会很快打开。我的所有控件都绑定到XAML中的类属性。请告诉我在激活它时绑定每个标签的方法,或者在后台线程中绑定控件或任何其他可以帮助我加快表单的想法。
提前致谢。
答案 0 :(得分:0)
我认为问题出在你绑定的类实例上。
当xaml绑定到类时,将触发绑定属性的所有getter。如果每个getter访问数据库以获取一些数据,这可能需要一段时间。
我认为你应该在这里仔细检查你的设计,并考虑异步获取你的数据。
答案 1 :(得分:0)
我同意格里。
我建议如下: 当您启动应用程序时,我会自动打开一个选项卡。仅加载该选项卡,不关心其他选项卡。这应该会更快地启动您的项目。 您为其他选项卡执行的操作是在第一次单击时加载它们。例如,当用户对选项卡5感兴趣时,唯一加载的将是启动时的初始选项卡,以及用户单击时的选项卡5。将不会加载所有其他选项卡,这将减少启动时间。
希望这个想法对你很清楚,并有助于你的申请。
答案 2 :(得分:0)
我发现为什么我的表格打开这么慢。我在表单中使用了大约20个XMLDataProvider对象。这个提供程序与xml文件一起迭代。当我在下面评论代码时,所有工作都很快感谢大家的帮助
//relatives_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_RelativeList" };
//education_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_EducationList" };
//requalification_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_RequalificationList" };
//jobHistory_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_JobHistoryList" };
//rank_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_RankList" };
//tradeUnion_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_TradeUnionList" };
//election_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_ElectionList" };
//judgeHistory_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_JudgeHistoryList" };
//tempWork_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_TempWorkList" };
//inquire_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_InquireList" };
//bulleten_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_BulletenList" };
//reprimand_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_ReprimandList" };
//certificate_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_CertificateList" };
//course_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_CourceList" };
//incentive_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_IncentiveList" };
//btrip_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_BtripList" };
//vacation_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_VacationList" };
//pass_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_PassList" };
//language_xdp = new XmlDataProvider() { Source = uri, XPath = "Config/ColumnsVisibility/Person_LanguageList" };