- introducing a dynamic data source class (IDataSource) - introducing a ButtonRow class for better managability - replacing that List<ButtonBase> with ButtonRow object - introducing ButtonFormDataSource with special methods for ButtonGrid controls - updating ButtonGrid and refactoring of the Load/Action methods - updating CheckButtonList and refactoring of the Load/Action methods - updating TaggedButtonGrid and refactoring of the Load/Action methods - adding example to the Test project
66 lines
1.6 KiB
C#
66 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using TelegramBotBase.Base;
|
|
using TelegramBotBase.Controls.Hybrid;
|
|
using TelegramBotBase.Form;
|
|
|
|
namespace TelegramBotBaseTest.Tests.Datasources
|
|
{
|
|
public class List : FormBase
|
|
{
|
|
ButtonGrid __buttons = null;
|
|
|
|
public List()
|
|
{
|
|
this.Init += List_Init;
|
|
}
|
|
|
|
private async Task List_Init(object sender, TelegramBotBase.Args.InitEventArgs e)
|
|
{
|
|
|
|
__buttons = new ButtonGrid();
|
|
|
|
__buttons.EnablePaging = true;
|
|
__buttons.EnableSearch = false;
|
|
__buttons.ButtonClicked += __buttons_ButtonClicked;
|
|
__buttons.KeyboardType = TelegramBotBase.Enums.eKeyboardType.ReplyKeyboard;
|
|
__buttons.DeleteReplyMessage = true;
|
|
|
|
__buttons.HeadLayoutButtonRow = new ButtonRow(new ButtonBase("Back", "back"));
|
|
|
|
var cds = new CustomDataSource();
|
|
__buttons.DataSource = cds;
|
|
|
|
AddControl(__buttons);
|
|
}
|
|
|
|
private async Task __buttons_ButtonClicked(object sender, TelegramBotBase.Args.ButtonClickedEventArgs e)
|
|
{
|
|
switch(e.Button.Value)
|
|
{
|
|
case "back":
|
|
|
|
var mn = new Menu();
|
|
await NavigateTo(mn);
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
public override async Task Load(MessageResult message)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
public override async Task Render(MessageResult message)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|