以静态方法访问列表框

pavol.franek

我有一个静态方法,当我需要更新列表框中的数据时,可以从另一个类调用它。但是然后我需要滚动列表框到最后一项。这是代码:

 public static void updateMessages()
  {
      MyDatasCurentUser.Clear();//clear messages from previewous user from datas
      foreach (var items in UniDB.returnlistOfMessagesData(IdOfChoosenUser, MainContentPage.myID))
      {
          _mydataCurentUser.Add(new BindingData
          {
              MessengerReadTime = new DateTime(items.readTime.Year, items.readTime.Month, items.readTime.Day, items.readTime.Hour, items.readTime.Minute, 0),
              MessengeFullName = items.senderName,
              MessengerTime = new DateTime(items.sendTime.Year, items.sendTime.Month, items.sendTime.Day, items.sendTime.Hour, items.sendTime.Minute, 0).ToString("dd.MM.yyyy - HH:mm"),
              MessengerMessage = items.message,
              MessengerIsFromMe = items.isFromMe,
          });
      }

      lbChoosenMessagesUsers.ScrollIntoView(lbChoosenMessagesUsers.Items.Last());
  }

但是我得到错误无法在静态上下文访问非静态字段lbChoosenMessagesUsers.ScrollIntoView(lbChoosenMessagesUsers.Items.Last());

lbChoosenMessagesUsers.ScrollIntoView(lbChoosenMessagesUsers.Items.Last());当方法updateMessages()被调用时,有什么办法可以做到这一点

Weyland Yutani

如果您具有一类的非静态方法:

class Form1
{
   public void UpdateMessages()
   {   
       // ...
       lbChoosenMessagesUsers.ScrollIntoView(lbChoosenMessagesUsers.Items.Last());
   }
}

您想从另一个类的对象中调用它,那么该对象将需要对第一个对象的引用。一种常见的解决方案是将对第一个对象的引用传递到第二个对象的构造函数中:

class OtherClass
{  
   Form1 _form;
   OtherClass(Form1 form)
   {
       _form = form;
   }

   void Method()
   {
       //can access the methods of the other object
       _form.UpdateMessages();
   }
}

或者,您可以稍后传递该对象:

class OtherClass
{  
   public void Method(Form1 form)
   {
       form.UpdateMessages();
   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章