WPF UI 设计问题:如何从单个复杂对象以结构化方式表示数据

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

这里是 WPF 菜鸟...

我想要一些关于如何以结构化、易于理解的方式向用户呈现数据的建议。我的数据来自一个大型 JSON 字符串,该字符串被解析为相当复杂的单个对象。该对象主要由各种单独的字符串和数组组成,这些字符串和数组以相当分层的模式构建。

这是我正在处理的内容(请注意,嵌套的 [] 继续进行更多层):

public class MyBigFatModel
{
    [JsonProperty("pattern")]
    public Pattern pattern { get; set; }

    [JsonProperty("fingerprint")]
    public string Fingerprint { get; set; }

    public partial class Pattern
    {
        [JsonProperty("uuid")]
        public string Uuid { get; set; }

        [JsonProperty("created")]
        public DateTime Created { get; set; }

        [JsonProperty("modified")]
        public object Modified { get; set; }

        [JsonProperty("info")]
        public Info Info { get; set; }

        [JsonProperty("holeTemplates")]
        public HoleTemplate[] HoleTemplates { get; set; }

        [JsonProperty("thingy")]
        public Thingy Thingy { get; set; }
    }

    public partial class Thingy
    {
        [JsonProperty("type")]
        public string Type { get; set; }

        [JsonProperty("thingyW")]
        public ThingyW ThingyW { get; set; }

        [JsonProperty("encoder")]
        public Encoder Encoder { get; set; }

        [JsonProperty("customer")]
        public string Customer { get; set; }
        
        [JsonProperty("location")]
        public string Location { get; set; }

        [JsonProperty("comment")]
        public string Comment { get; set; }
    }

    public partial class ThingyW
    {
        [JsonProperty("NameDesc1")]
        public string NameDesc1 { get; set; }
                    
        [JsonProperty("NameDesc2")]
        [JsonConverter(typeof(ParseStringConverter))]
        public long BNameDesc2 { get; set; }

        ...

        [JsonProperty("serialNo")]
        public string SerialNo { get; set; }

        [JsonProperty("version")]
        public string Version { get; set; }

        [JsonProperty("battLevel")]
        public long BattLevel { get; set; }

        [JsonProperty("fileUUID")]
        public string FileUuid { get; set; }

        [JsonProperty("pcUUID")]
        public string PcUuid { get; set; }
    }

    public partial class Encoder
    {
        [JsonProperty("line1")]
        public string Line1 { get; set; }

        [JsonProperty("line2")]
        public string Line2 { get; set; }

        [JsonProperty("id")]
        public long Id { get; set; }

        [JsonProperty("serialNo")]
        public object SerialNo { get; set; }

        [JsonProperty("version")]
        public string Version { get; set; }

        [JsonProperty("battLevel")]
        public long BattLevel { get; set; }

        [JsonProperty("state")]
        public string State { get; set; }

        [JsonProperty("timestamp")]
        public DateTime Timestamp { get; set; }

        [JsonProperty("expiry")]
        public DateTime Expiry { get; set; }

        [JsonProperty("validationKey")]
        public string ValidationKey { get; set; }

        [JsonProperty("standoffSeconds")]
        public long StandoffSeconds { get; set; }

        [JsonProperty("beaconID")]
        public string BeaconId { get; set; }

        [JsonProperty("aTime")]
        public DateTime ATime { get; set; }

        [JsonProperty("fTime")]
        public DateTime FTime { get; set; }

        [JsonProperty("codes")]
        public Code[] Codes { get; set; }

        [JsonProperty("holes")]
        public Hole[] Holes { get; set; }

        [JsonProperty("availableUID")]
        public string[] AvailableUid { get; set; }
    }

最初我想使用 TreeView,但据我所知它只绑定到集合而不是单个对象。

关于如何以分层方式表示这些数据,以允许用户深入了解数据,有什么建议吗?

我仍然愿意使用 Treeview,但我有限的理解会让我认为我需要将对象分开并创建一堆我可以将树指向的新集合。

任何想法、建议等,我们将不胜感激!

c# wpf treeview
1个回答
0
投票

对于后代:我最终使用了树视图。在相当多的层中工作得很好,但我在 JSON 对象的底层有一个数组。它只是不会显示数组元素。我最终不得不弄乱我的绑定才能让它工作。对于层次结构中较高的任何阵列都不必这样做。很奇怪,但它仍然有效。感谢大家的集体智慧!

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