如何根据我的数据更改AlertControl宽度? C#

时间:2018-07-31 15:19:09

标签: devexpress devextreme

我找到了一种使数据动态变化的方法。 我在c#中使用MVVM WinForm

在表单中,创建一个私有属性:

 private int alertControlWidth;

现在,在您的timer_tick中:

 alertControlWidth = viewModel.GetAlertControlWidth(MyListOfObjects) *10;
 ShowAlert(MyListOfObjects); //do your stuff in it 

然后,您继续使用设计器,单击AlertControl,事件,然后双击BeforeFormShow。在表单代码的新方法中,使用以下命令:

e.AlertForm.Width = alertControlWidth;

现在是viewModel:

 GetAlertControlWidth(List<Model> list)
 {
   var maxLength =0;
   var message = "";
   foreach (var item in list)
   {
     message = list.Hour + list.Name + list.Date + ...(your data)

     if(message.Length > maxLength)
     {
      maxLength = message.Length;
     }
   }
  return maxLength + 5;
 }

我返回+5的原因是因为我有一个具有32x32的图标。因此,该图标至少要占用32像素,因此要剩下5 * 10 = 50 -32 = 18像素,以确保您的数据不会从新行开始。

希望对您有所帮助! 我不是有史以来最好的代码,但是可能很有用,因为DEvExpress没有AutoWidth模式。

最诚挚的问候!

0 个答案:

没有答案