namespace HStation.WinFrmUI
|
{
|
public partial class GenerateXhsProjectFileWizardPage : DevExpress.XtraEditors.XtraUserControl, IWizardPage<ImportXhsProjectFileViewModel>
|
{
|
public GenerateXhsProjectFileWizardPage()
|
{
|
InitializeComponent();
|
this.layoutControl1.SetupLayoutControl();
|
}
|
|
/// <summary>
|
/// 状态改变事件
|
/// </summary>
|
public event Action PageStateChangedEvent;
|
|
private bool _isInitialize = false;//是否初始化
|
private bool _importResult = false;//导入结果
|
private ImportXhsProjectFileViewModel _vm = null;//操作对象
|
|
private class ListItemWithColor
|
{
|
public string Text { get; set; }
|
public Color Color { get; set; }
|
|
public override string ToString()
|
{
|
return null;
|
}
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public async void InitialPage(ImportXhsProjectFileViewModel vm)
|
{
|
_vm = vm;
|
_isInitialize = false;
|
_importResult = false;
|
_importResult = await ImportXhsProjectFileHelper.Import(vm, (msg, color) =>
|
{
|
ListItemWithColor itemWithColor = new ListItemWithColor
|
{
|
Text = msg,
|
Color = color
|
};
|
this.listBoxControl1.Items.Add(itemWithColor);
|
}, (max, current) =>
|
{
|
this.progressBarControl1.Properties.Maximum = max;
|
this.progressBarControl1.Position = current;
|
//替代方案
|
// this.progressBarControl1.Properties.Step = current;
|
// this.progressBarControl1.PerformStep();
|
});
|
if (!_importResult)
|
{
|
this.progressBarControl1.Position = 0;
|
this.itemForProgress.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
}
|
_isInitialize = true;
|
this.PageStateChangedEvent?.Invoke();
|
}
|
|
/// <summary>
|
/// 允许上一步
|
/// </summary>
|
public bool AllowPrev
|
{
|
get
|
{
|
if (_isInitialize)
|
{
|
if (!_importResult)
|
{
|
return true;
|
}
|
}
|
return false;
|
}
|
}
|
|
/// <summary>
|
/// 允许下一步
|
/// </summary>
|
public bool AllowNext
|
{
|
get
|
{
|
if (_isInitialize)
|
{
|
if (_importResult)
|
{
|
return true;
|
}
|
}
|
return false;
|
}
|
}
|
|
/// <summary>
|
/// 允许取消
|
/// </summary>
|
public bool AllowCancel
|
{
|
get
|
{
|
if (_isInitialize)
|
{
|
if (!_importResult)
|
{
|
return true;
|
}
|
}
|
return false;
|
}
|
}
|
|
/// <summary>
|
/// 允许完成
|
/// </summary>
|
public bool AllowComplete
|
{
|
get { return false; }
|
}
|
|
/// <summary>
|
/// 能否上一步
|
/// </summary>
|
/// <returns></returns>
|
public bool CanPrev()
|
{
|
return this.AllowPrev;
|
}
|
|
/// <summary>
|
/// 能否下一步
|
/// </summary>
|
public bool CanNext()
|
{
|
return this.AllowNext;
|
}
|
|
/// <summary>
|
/// 能否取消
|
/// </summary>
|
public bool CanCancel()
|
{
|
return this.AllowCancel;
|
}
|
|
/// <summary>
|
/// 能否完成
|
/// </summary>
|
public bool CanComplete()
|
{
|
return false;
|
}
|
|
private void listBoxControl1_DrawItem(object sender, DevExpress.XtraEditors.ListBoxDrawItemEventArgs e)
|
{
|
// 获取当前项目的索引
|
int index = e.Index;
|
|
// 检查是否是有效的项目索引
|
if (index >= 0)
|
{
|
// 获取当前项目
|
ListItemWithColor item = (ListItemWithColor)listBoxControl1.Items[index];
|
|
// 设置字体和颜色
|
Font font = new Font("Arial", 15);
|
Brush brush = new SolidBrush(item.Color);
|
// 绘制文本
|
e.Graphics.DrawString(item.Text, font, brush, e.Bounds);
|
}
|
}
|
}
|
}
|