C# 如何禁用ContentControl内部的所有绑定/触发
在这种情况下,我有一个网格,里面有很多控件、按钮、画布、绘图、动画,都绑定到视图模型,我想在我将网格的可见性设置为折叠时,禁用其子对象和子对象的子对象内的所有数据触发器、触发器、绑定等,这样就不会浪费CPU周期,(因为一个沉重的动画正在持续运行),并且不会崩溃 我使用的是一种行为: 但它似乎有一个bug,如果listbox在使用时崩溃,它会导致应用程序崩溃,因此我需要禁用激活该行为的数据绑定 根据我的发现:C# 如何禁用ContentControl内部的所有绑定/触发,c#,.net,wpf,user-interface,controls,C#,.net,Wpf,User Interface,Controls,在这种情况下,我有一个网格,里面有很多控件、按钮、画布、绘图、动画,都绑定到视图模型,我想在我将网格的可见性设置为折叠时,禁用其子对象和子对象的子对象内的所有数据触发器、触发器、绑定等,这样就不会浪费CPU周期,(因为一个沉重的动画正在持续运行),并且不会崩溃 我使用的是一种行为: 但它似乎有一个bug,如果listbox在使用时崩溃,它会导致应用程序崩溃,因此我需要禁用激活该行为的数据绑定 根据我的发现: 将不应用控件的模板 因此,唯一的方法是将所有内容放入controltemplate中
- 将不应用控件的模板
<ContentControl Visibility="Collapsed">
<ContentControl.Template>
<Grid Name="Heavy Animation control">
<!--- animations, triggers, bindings , -->
</Grid>
</ContentControl.Template>
因此,在我切换可见性之前,模板不会被应用,所有内容都会关闭
因此,我的问题是:这是解决此问题的正确方法吗?是的。由于ContentControl已折叠,在将可见性更改为visible之前,模板将不会应用
但是,我很想知道网格是如何设置的,以及您是否可以将其进一步细分,以便按钮、画布、绘图、动画等仅在需要时初始化。将
数据上下文更改为不更新的内容?