如何从类发送参数到winform?

时间:2011-06-03 17:47:09

标签: c# winforms

我找到了一个完全符合我喜欢的代码: View/edit ID3 data for MP3 files

...

class a{
   public ? getContent(){

      string Title = Encoding.Default.GetString(tag.Title);
      string Artist = Encoding.Default.GetString(tag.Artist);
      string Album = Encoding.Default.GetString(tag.Album);
   }
}

class form1{
    button1.click()
    {
        ? = a.getContent
        text1.text = ?.Title;
        text2.Text = ?.Artist;
    }
}

Simucal将结果打印到控制台,但我希望有一个winform获取此输入并将其放入一些文本框中。我想我可以用数组来做,但我想有更好的方法以mvvm的方式做到这一点(我知道我的问题可能毫无意义,但我喜欢以正确的方式做到这一点)......

请帮助:)

3 个答案:

答案 0 :(得分:1)

在这种情况下,您只需返回包含该数据的结果对象:

public ContentData getContent()
{
     return new ContentData
     {
        Title = "Hello World",
        Artist = "Some Other String"
     };
}

ContentData data = someobject.getContent();

text1.Text = data.Title; 
// etc

你只需制作自己的类型。

答案 1 :(得分:1)

是否有某些原因您无法使用类来封装该数据?

class TagData
{
    public string Title {get; set; }
    public string Artist {get; set; }
    public string Album {get; set; }
}

class a{
   public TagData getContent(){
      return new TagData
      {
          Title = Encoding.Default.GetString(tag.Title),
          Artist = Encoding.Default.GetString(tag.Artist),
          Album = Encoding.Default.GetString(tag.Album)
      };
   }
}

class form1{
    button1.click()
    {
        var tagData = a.getContent
        text1.text = tagData.Title;
        text2.Text = tagData.Artist;
    }
}

或者,如果你想对它不那么'安全',你可以把它全部打包成一个词典:

class a{
   public Dictionary<string, string> getContent(){
      var tagData = new Dictionary<string, string>();
      tagData["Title"] = Encoding.Default.GetString(tag.Title);
      tagData["Artist"] = Encoding.Default.GetString(tag.Artist);
      tagData["Album"] = Encoding.Default.GetString(tag.Album);
      return tagData;
   }
}

class form1{
    button1.click()
    {
        var tagData = a.getContent();
        text1.Text = tagData["Title"];
        text2.Text = tagData["Artist"];
    }
}

答案 2 :(得分:0)

使用您想要的属性创建一个名为Tags的类或类似的类。返回具有属性集的实例。 Winforms不能很好地完成MVVM。