And*_*nea 8 silverlight treeview
如何在Silverlight中扩展整个TreeView?
编辑:这是XAML:
<controls:TreeView x:Name="tv">
<controls:TreeView.ItemTemplate>
<common:HierarchicalDataTemplate ItemsSource="{Binding Children}">
<CheckBox IsChecked="{Binding Visible, Mode=TwoWay}" Content="{Binding Name}"/>
</common:HierarchicalDataTemplate>
</controls:TreeView.ItemTemplate>
</controls:TreeView>
Run Code Online (Sandbox Code Playgroud)
也许使用ItemTemplate使得ItemContainerGenerator.ContainerFromIndex在任何索引上都返回null?
Mar*_*ark 18
我知道这有点晚了但我在寻找答案时发现了这一点,并且发现在Silverlight 4中你可以使用隐式主题来做到这一点:
<Style TargetType="controls:TreeViewItem">
<Setter Property="IsExpanded" Value="True" />
</Style>
Run Code Online (Sandbox Code Playgroud)
在Silverlight 5中,您必须将此代码添加到该部分才能实现此目的.
<Style TargetType="sdk:TreeViewItem">
<Setter Property="IsExpanded" Value="True" />
</Style>
Run Code Online (Sandbox Code Playgroud)
小智 9
首先,请阅读这篇文章:http: //bea.stollnitz.com/blog/?p = 55
其次,继承TreeViewItem和TreeView:
public class TreeViewItemEx : TreeViewItem {
protected override DependencyObject GetContainerForItemOverride() {
TreeViewItemEx tvi = new TreeViewItemEx();
Binding expandedBinding = new Binding("IsExpanded");
expandedBinding.Mode = BindingMode.TwoWay;
tvi.SetBinding(TreeViewItemEx.IsExpandedProperty, expandedBinding);
return tvi;
}
}
public class TreeViewEx : TreeView {
protected override DependencyObject GetContainerForItemOverride() {
TreeViewItemEx tvi = new TreeViewItemEx();
Binding expandedBinding = new Binding("IsExpanded");
expandedBinding.Mode = BindingMode.TwoWay;
tvi.SetBinding(TreeViewItemEx.IsExpandedProperty, expandedBinding);
return tvi;
}
}
Run Code Online (Sandbox Code Playgroud)
第三,将Model的属性绑定到"IsExpanded".
| 归档时间: |
|
| 查看次数: |
11559 次 |
| 最近记录: |