【问题标题】:Enable UI virtualization on a TreeView in C#, programmatically以编程方式在 C# 中的 TreeView 上启用 UI 虚拟化
【发布时间】:2014-04-16 21:38:42
【问题描述】:

是否可以在以编程方式创建的 TreeView 上启用 UI 虚拟化?

我也想这样做:

<TreeView VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling">

但是在我用 C# 即时创建的 TreeView 上。

谢谢!

【问题讨论】:

  • 不要在 WPF 的过程代码中创建或操作 UI 元素。这就是 XAML 的用途。
  • 界面非常动态,所以很遗憾我不能把它全部放在 Xaml 中:(
  • 是的,您可以使用适当的 DataBinding 在 XAML 中执行“动态”接口。不鼓励创建/操作 UI 元素,因为由于 Visual Tree 的复杂性,这是一种不方便的技术。发布您需要的屏幕截图,以及您用于构建 UI 的 data 示例,我可以告诉您在 WPF 中执行此操作的正确方法。

标签: c# wpf treeview virtualization


【解决方案1】:

你可以试试这个:

myTreeView.SetValue(VirtualizingPanel.IsVirtualizingProperty, true);
myTreeView.SetValue(VirtualizingPanel.VirtualizationModeProperty, VirtualizationMode.Recycling);

当然,HighCore 是对的 ..

【讨论】:

    【解决方案2】:

    您可以使用 TreeView 的 DependencyObject.SetValue Method (DependencyProperty, Object) 以编程方式设置附加属性

    VirtualizingStackPanel.IsVirtualizingPropertyVirtualizingStackPanel.VirtualizationModeProperty

    myTreeView.SetValue(VirtualizingStackPanel.IsVirtualizingProperty, true);
    myTreeView.SetValue(VirtualizingStackPanel.VirtualizationModeProperty, VirtualizationMode.Recycling);
    

    另一种方法是调用静态方法

    VirtualizingStackPanel.SetIsVirtualizing(myTreeView, true);
    VirtualizingStackPanel.SetVirtualizationMode(myTreeView, VirtualizationMode.Recycling);
    

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2020-08-19
      相关资源
      最近更新 更多