带有Caliburn Micro c#WPF的TreeView

问题描述 投票:0回答:1

我正在尝试使树视图处理我的数据。我正在使用带有Caliburn Micro的WPF MVVM,但由于某种原因,我无法按需使用绑定。

我的简化形式的数据如下所示。

A级操作

public class Operation
{
    public string Name { get; set; }
    public int Id { get; set; }

    public ObservableCollection<Parameters> parameters { get; set; }

    public Operation()
    {
        parameters = new ObservableCollection<Parameters>();
    }
}

和类参数

    public class Parameters
{
    public string par { get; set; }
    public double val { get; set; }

    public ObservableCollection<Joints> Joints { get; set; }

    public Parameters()
    {
        Joints = new ObservableCollection<Joints>();
    }
}

和关节课

在我的ShellViewModel中,我初始化这些类并将一些数据放入其中...

public Operation _Operation = new Operation();
int moveId = 0;

public BindableCollection<Operation> Operations
    {
        get { return _Operations; }
        set 
        { 
            _Operations = value;
            NotifyOfPropertyChange(() => Operations);
        }
    }

 public ShellViewModel()
    {

    var moveOperation = new Operation
        {
            Id = moveId,
            Name = $"Move{moveId}"
        };
        Joints jt1 = new Joints() { Par = "J0", Val = 2.34 };
        Joints jt2 = new Joints() { Par = "J0", Val = 0.34 };
        Parameters parm = new Parameters { par = "a", val = 2.13 };
        parm.Joints.Add(jt1);
        parm.Joints.Add(jt2);
        moveOperation.Parameters.Add(parm);

}

我的目标是在树状视图中将其可视化,如下所示:>

 - Move1
    -a 2.13
    -Joints
      -J0 2.34
      -J1 0.34
 - Move2
    -a 'some value'
    -Joints
      -J0 'some value'
      -J1 'some value'

但是,但是我尝试使xaml起作用,但我从未能够向孩子展示这些……这只是我所做的示例之一。

                    <TreeView Grid.Row="1" Grid.Column="1" MinWidth="150"
                          ItemsSource="{Binding Operations}">
                    <TreeView.ItemTemplate>
                        <HierarchicalDataTemplate ItemsSource="{Binding Parameters}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock VerticalAlignment="Center" Text="{Binding par}"/>
                                    <TextBlock Text=" " ></TextBlock>
                                <TextBlock VerticalAlignment="Center" Text="{Binding val}"/>
                                <TextBlock VerticalAlignment="Center" Text="{Binding Par}"/>

                                <TextBlock VerticalAlignment="Center" Text="{Binding Val}"/>
                                <TextBlock VerticalAlignment="Center" Text="{Binding Par}"/>

                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock VerticalAlignment="Center" FontSize="15" Text="{Binding Name}"/>
                                    </StackPanel>
                                </StackPanel>
                        </HierarchicalDataTemplate>
                    </TreeView.ItemTemplate>
                </TreeView>

请提供任何指导或帮助,我已经失去了整整三天的时间,只是为了使此树形视图正常工作。谢谢!

编辑:我在Parameters类中有一个错字,感谢您指出。我想将“关节”的位置比以前降低一个级别,这实际上是我遇到的问题,如何进入更深的级别

我正在尝试使树视图处理我的数据。我正在使用带有Caliburn Micro的WPF MVVM,但由于某种原因,我无法按需使用绑定。我的简化形式的数据如下所示。 ...

c# wpf treeview caliburn.micro
1个回答
0
投票

在您的XAML树状视图中,您必须这样做以获得子代。

© www.soinside.com 2019 - 2024. All rights reserved.