dddsssssqq 发表于 2024-10-14 14:35:10

C1OrgChart的IsCollapsed怎么绑定到属性

有一个树状结构类型
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 上

dddsssssqq 发表于 2024-10-14 14:35:11

dddsssssqq 发表于 2024-10-14 20:33
我在文档里看到一段代码,没看到用法
https://developer.mescius.com/componentone/docs/wpf/online-org ...


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

Richard.Ma 发表于 2024-10-14 18:05:49

我没看明白你说的“树形结构”是什么意思

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

当然这中间肯定是需要converter的,得把string转换为bool

dddsssssqq 发表于 2024-10-14 20:03:34

本帖最后由 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没有绑定成功

dddsssssqq 发表于 2024-10-14 20:33:32

Richard.Ma 发表于 2024-10-14 18:05
我没看明白你说的“树形结构”是什么意思

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

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

Richard.Ma 发表于 2024-10-15 09:22:59

:hjyzw:
页: [1]
查看完整版本: C1OrgChart的IsCollapsed怎么绑定到属性