【问题标题】:How to get values from a databound listbox's selected items parsed by json into various textboxes如何从由json解析的数据绑定列表框的选定项目中获取值到各种文本框中
【发布时间】:2020-03-16 20:09:41
【问题描述】:

对整体编程很陌生,所以请尽量保持简单,因为我可能不明白。 另外英语不是我的母语。

我的目标是在几个文本框中显示我从 json 反序列化字符串中获得的不同值,我已经将此字符串作为列表框的“数据源”,现在我想单击“加载漫画”按钮并制作它以便文本框从选定的列表框项中获取相应的值,但是到目前为止我所能做的就是填充“漫画”文本框。 我的问题是我到底该怎么做? 这会从列表框的选定项中获取文本到文本框。

private void button1_Click(object sender, EventArgs e)
{
    //name of comic
    comicName_txtbx.Text = Convert.ToString(Manga_listBox.GetItemText(Manga_listBox.SelectedItem));
}

那么我需要添加什么来填充它?: ComicTotalCHs_txtbx.Text 应该采用应该在“章节”中的值

//total chapters of comic
ComicTotalCHs_lbl.Text = "";
ComicTotalCHs_txtbx.Text = "";

我还有以下类供参考:

public class Comic
{
    private string manga;
    private int chapters;
    private bool isFinished;
    private int lastReadCH;

    public string Manga { get => manga; set => manga = value; }
    public int Chapters { get => chapters; set => chapters = value; }
    public bool IsFinished { get => isFinished; set => isFinished = value; }
    public int LastReadCH { get => lastReadCH; set => lastReadCH = value; }
}
public class ComicList
{
    private List<Comic> comics;

    public List<Comic> Comics { get => comics; set => comics = value; }
}
public class DisplayComic
{
    private static List<Comic> fullList;

    public static List<Comic> FullList { get => fullList; set => fullList = value; }

    public static List<Comic> GetComcis()
    {
        return FullList;
    }
}

顺便说一句,这就是我获取 json 字符串的方式:

var fileStream = openFileDialog.OpenFile();
using (StreamReader sr = new StreamReader(fileStream))
{
    string fileContent = sr.ReadToEnd();
    ComicList comics = JsonConvert.DeserializeObject<ComicList>(fileContent);
    DisplayComic.FullList = comics.Comics;
    Manga_listBox.DataSource = DisplayComic.FullList;
    Manga_listBox.DisplayMember = "manga";
}

【问题讨论】:

    标签: c# json visual-studio winforms


    【解决方案1】:

    所以有人在 irc 聊天室给我发了这个: ((List)listBox.DataSource)[3].SomeProperty 只需添加即可完美运行

    ComicTotalCHs_txtbx.Text = Convert.ToString(((List)Manga_listBox.DataSource)[Convert.ToInt32(Manga_listBox.SelectedIndex)].Chapters);

    来了

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      • 1970-01-01
      • 2016-03-24
      • 1970-01-01
      相关资源
      最近更新 更多