找回密码
 立即注册

QQ登录

只需一步,快速开始

dddsssssqq

注册会员

17

主题

49

帖子

148

积分

注册会员

积分
148
dddsssssqq
注册会员   /  发表于:2024-10-14 14:35  /   查看:22  /  回复:5
1金币
有一个树状结构类型
public class CloudRulePathModel : BindableBase {
    public List<CloudRulePathModel> ChildRule { get; set; } = new();

    private string _isExpand;
    public string IsExpand {
        get=>_isExpand;
        set => SetProperty(ref _isExpand, value);
    }}怎么将C1OrgChart的IsCollapsed属性绑定到IsExpand 上

5 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:4 天前
沙发
我没看明白你说的“树形结构”是什么意思

从你给的代码看,只要给IsCollapsed属性绑定CloudRulePathModel的IsExpand 属性就行

当然这中间肯定是需要converter的,得把string转换为bool
回复 使用道具 举报
dddsssssqq
注册会员   /  发表于:4 天前
板凳
本帖最后由 dddsssssqq 于 2024-10-14 20:14 编辑
Richard.Ma 发表于 2024-10-14 18:05
我没看明白你说的“树形结构”是什么意思

从你给的代码看,只要给IsCollapsed属性绑定CloudRulePathMode ...

将IsExpand  修改为bool类型,
用下面的函数构造一个数据
private CloudRulePathModel CreateData(int level, string name) {
        var model = new CloudRulePathModel {
            Name = name,
            IsExpand = level % 2 == 0
        };
        for (var i = 0; i < level; i++) {
            model.ChildRule.Add(CreateData(--level, $"child node {i}"));
        }

        return model;
    }
将数据作为C1OrgChart的Header
_orgChart.Header = CreateData(5, "root");
xaml代码如下:
<c1:C1OrgChart
                x:Name="_orgChart"
                Orientation="Horizontal"
                IsCollapsed="{Binding IsExpand}"
                ChildSpacing="1,1"
                ConnectorStroke="Black"
                ConnectorThickness="{Binding Path=ChildRule.Count}">
                <c1:C1OrgChart.ItemTemplate>
                    <DataTemplate>
                        <Border
                            Background="#ff88bde6" BorderBrush="Black"
                            BorderThickness="1 1 2 2" CornerRadius="6"
                            Margin="20" MaxWidth="200">
                            <StackPanel Orientation="Vertical">
                                <Border CornerRadius="6 6 0 0" Background="Black">
                                    <TextBlock Text="{Binding Name}" FontWeight="Bold" FontSize="14" Foreground="#ff88bde6" Padding="4 0 0 0"/>
                                </Border>
                                <CheckBox
                                    Margin="4 0"
                                    IsChecked="{Binding IsCollapsed, Mode=TwoWay, RelativeSource={RelativeSource AncestorType=c1:C1OrgChart}}"/>
                            </StackPanel>
                        </Border>
                    </DataTemplate>
                </c1:C1OrgChart.ItemTemplate>
            </c1:C1OrgChart>

我想将对应节点的折叠和IsExpand属性绑定,实际显示结果不没有折叠

IsCollapsed和ConnectorThickness的绑定是一致的。IsCollapsed没有绑定成功

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
dddsssssqq
注册会员   /  发表于:4 天前
地板
Richard.Ma 发表于 2024-10-14 18:05
我没看明白你说的“树形结构”是什么意思

从你给的代码看,只要给IsCollapsed属性绑定CloudRulePathMode ...

我在文档里看到一段代码,没看到用法
https://developer.mescius.com/componentone/docs/wpf/online-orgchart/expandingandcollapsi.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
dddsssssqq
注册会员   /  发表于:4 天前
5#
dddsssssqq 发表于 2024-10-14 20:33
我在文档里看到一段代码,没看到用法
https://developer.mescius.com/componentone/docs/wpf/online-org ...


解决了..
我在模版选择器中修改折叠状态。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:3 天前
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部