如何在 Visual Studio WPF 上创建这种模型?[TreeList to TextBox]

How can I create this kind of model on Visual Studio WPF?[TreeList to TextBox]

哦,大家好,我是 C# 世界的新手,但我真的很想知道是否可以这样做,如果可能的话如何去做。基本上是一个程序模型,带有一个 Datagridview,其中每个单元格都包含一个 Treelist,它指向一个可选择文本框。我试图在互联网上到处找到这个特定的模型,但没有成功。

型号:ProgramModel.exe

抱歉,如果漫画废话打扰了你。

您好,我认为在这种情况下使用 ListView 控件可能更好,您可以使用 DataTemplate 来设置 ListView 的样式并告诉它如何显示项目,首先添加这些 XAML 代码:

    <ListView x:Name="MainListView" HorizontalAlignment="Center" VerticalAlignment="Center">
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <Border BorderBrush="Black" BorderThickness="3,3,3,3" Margin="1,0,0,0" MinWidth="200">
                        <TextBlock Text="{Binding Path=TxtType}" Margin="10,0,0,0"></TextBlock>
                    </Border>
                    <TreeView>
                        <Border BorderBrush="Black" BorderThickness="3,3,3,3" Margin="-20,0,0,0" MinWidth="200">
                            <TreeViewItem Header="smalpptext">
                                <TreeViewItem.Items>
                                    <TextBox Text="{Binding Path=SmalPPTxt}" IsReadOnly="True"></TextBox>
                                </TreeViewItem.Items>
                            </TreeViewItem>
                        </Border>
                        <Border BorderBrush="Black" BorderThickness="3,3,3,3" Margin="-20,0,0,0" MinWidth="200">
                            <TreeViewItem Header="largepptext">
                                <TreeViewItem.Items>
                                    <TextBox Text="{Binding Path=LargePPTxt}" IsReadOnly="True"></TextBox>
                                </TreeViewItem.Items>
                            </TreeViewItem>
                        </Border>
                    </TreeView>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

准备好 ListView 后,我们需要用数据填充它,我们可以使用 ObservableCollection,添加这些 C# 代码:

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
        AddText();
        MainListView.ItemsSource = StringList;
    }

    ObservableCollection<PPStrings> StringList = new ObservableCollection<PPStrings>();

    private class PPStrings
    {
        public string TxtType { get; set; }
        public string SmalPPTxt { get; set; }
        public string LargePPTxt { get; set; }
    }

    private void AddText()
    {
        PPStrings p1 = new PPStrings();
        p1.TxtType = "Text Type";
        p1.SmalPPTxt = "LOLXD a dork with small pp.";
        p1.LargePPTxt = "A dork with large PP.";
        PPStrings p2 = new PPStrings();
        p2.TxtType = "Text Type";
        p2.SmalPPTxt = "LOLXD a wierdo with small pp.";
        p2.LargePPTxt = "A wierdo with large PP.";
        PPStrings p3 = new PPStrings();
        p3.TxtType = "Text Type";
        p3.SmalPPTxt = "HaHa a dork with small pp.";
        p3.LargePPTxt = "Haha A dork with large PP.";
        StringList.Add(p1);
        StringList.Add(p2);
        StringList.Add(p3);
    }
    
}

}