mirror of
https://github.com/DevExpress/netcore-winforms-demos.git
synced 2026-01-07 01:03:58 +00:00
Add Outlook Inspired and Stock Market demos
This commit is contained in:
@@ -0,0 +1,133 @@
|
||||
using DevExpress.Utils.MVVM;
|
||||
|
||||
namespace DevExpress.DevAV.Modules {
|
||||
using System;
|
||||
using DevExpress.DevAV;
|
||||
using DevExpress.DevAV.ViewModels;
|
||||
using DevExpress.XtraBars.Docking2010;
|
||||
using DevExpress.XtraRichEdit;
|
||||
using DevExpress.XtraBars;
|
||||
|
||||
public partial class OrderView : BaseModuleControl {
|
||||
public OrderView()
|
||||
: base(typeof(SynchronizedOrderViewModel)) {
|
||||
InitializeComponent();
|
||||
TitleLabel.Appearance.ForeColor = ColorHelper.DisabledTextColor;
|
||||
ItemForTitleLabel.AppearanceItemCaption.ForeColor = ColorHelper.DisabledTextColor;
|
||||
ItemForTitleLabel.AppearanceItemCaption.Options.UseForeColor = true;
|
||||
modueLayout.Visible = false;
|
||||
snapControl.BackColor = ColorHelper.GetControlColor(LookAndFeel);
|
||||
LookAndFeel.StyleChanged += LookAndFeel_StyleChanged;
|
||||
ViewModel.EntityChanged += ViewModel_EntityChanged;
|
||||
snapControl.ZoomChanged += snapControl_ZoomChanged;
|
||||
|
||||
}
|
||||
protected override void OnMVVMContextReleasing() {
|
||||
ViewModel.EntityChanged -= ViewModel_EntityChanged;
|
||||
}
|
||||
protected override void OnDisposing() {
|
||||
LookAndFeel.StyleChanged -= LookAndFeel_StyleChanged;
|
||||
snapControl.ZoomChanged -= snapControl_ZoomChanged;
|
||||
base.OnDisposing();
|
||||
}
|
||||
public OrderViewModel ViewModel {
|
||||
get { return GetViewModel<OrderViewModel>(); }
|
||||
}
|
||||
void BindCommands() {
|
||||
var fluentAPI = mvvmContext.OfType<OrderViewModel>();
|
||||
fluentAPI.SetBinding(paidBBI, x => x.Caption, x => x.MarkPaidToolTip);
|
||||
fluentAPI.SetBinding(refundBBI, x => x.Caption, x => x.IssueFullRefundToolTip);
|
||||
//editBBI.BindCommand(() => ViewModel.Edit(), ViewModel);
|
||||
editBBI.Enabled = false;
|
||||
editBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
editBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.Edit.svg?Size=16x16";
|
||||
deleteBBI.BindCommand(() => ViewModel.Delete(), ViewModel);
|
||||
deleteBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
deleteBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.Delete.svg?Size=16x16";
|
||||
emailBBI.BindCommand(() => ViewModel.MailTo(), ViewModel);
|
||||
emailBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
emailBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.ThankYou.svg?Size=16x16";
|
||||
//printBBI.BindCommand(() => ViewModel.Print(), ViewModel);
|
||||
printBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
printBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.Print.svg?Size=16x16";
|
||||
printBBI.Enabled = false;
|
||||
paidBBI.BindCommand(() => ViewModel.MarkPaid(), ViewModel);
|
||||
paidBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
paidBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.Paid.svg?Size=16x16";
|
||||
refundBBI.BindCommand(() => ViewModel.IssueFullRefund(), ViewModel);
|
||||
refundBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
refundBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.Refund.svg?Size=16x16";
|
||||
nextBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
nextBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.NextRecord.svg?Size=16x16";
|
||||
previousBBI.ImageOptions.ImageUri.ResourceType = typeof(DevExpress.DevAV.MainForm);
|
||||
previousBBI.ImageOptions.ImageUri.Uri = "resource://DevExpress.DevAV.Resources.PreviousRecord.svg?Size=16x16";
|
||||
}
|
||||
void ViewModel_EntityChanged(object sender, System.EventArgs e) {
|
||||
QueueUIUpdate();
|
||||
}
|
||||
void LookAndFeel_StyleChanged(object sender, EventArgs e) {
|
||||
snapControl.BackColor = ColorHelper.GetControlColor(LookAndFeel);
|
||||
}
|
||||
protected override int GetUIUpdateDelay() {
|
||||
return 500;
|
||||
}
|
||||
protected override void OnDelayedUIUpdate() {
|
||||
base.OnDelayedUIUpdate();
|
||||
UpdateUI(ViewModel.Entity);
|
||||
}
|
||||
protected override void OnLoad(System.EventArgs e) {
|
||||
base.OnLoad(e);
|
||||
BindCommands();
|
||||
LoadOrderTemplate();
|
||||
UpdateUI(ViewModel.Entity);
|
||||
}
|
||||
void LoadOrderTemplate() {
|
||||
if(!snapControl.Document.IsEmpty)
|
||||
return;
|
||||
using(var stream = MailMergeTemplatesHelper.GetTemplateStream("Order.snx"))
|
||||
snapControl.LoadDocumentTemplate(stream, DevExpress.Snap.Core.API.SnapDocumentFormat.Snap);
|
||||
snapControl.Paint += snapControl_Paint;
|
||||
}
|
||||
void snapControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e) {
|
||||
snapControl.Paint -= snapControl_Paint;
|
||||
PrintLayoutView view = snapControl.ActiveView as PrintLayoutView;
|
||||
if(view != null)
|
||||
view.FitToPage();
|
||||
}
|
||||
void snapControl_ZoomChanged(object sender, EventArgs e) {
|
||||
RaiseZoomLevelChanged();
|
||||
}
|
||||
void UpdateUI(Order order) {
|
||||
if(order != null) {
|
||||
if(!object.Equals(bindingSource.DataSource, order))
|
||||
bindingSource.DataSource = order;
|
||||
else
|
||||
bindingSource.ResetBindings(false);
|
||||
snapControl.Document.Fields.Update();
|
||||
}
|
||||
modueLayout.Visible = (order != null);
|
||||
}
|
||||
public int ZoomLevel {
|
||||
get { return (int)System.Math.Ceiling(snapControl.ActiveView.ZoomFactor * 100.0f); }
|
||||
set {
|
||||
if(ZoomLevel == value) return;
|
||||
snapControl.ActiveView.ZoomFactor = ((float)value) / 100.0f;
|
||||
}
|
||||
}
|
||||
public BarButtonItem MovePrevButton {
|
||||
get {
|
||||
return previousBBI;
|
||||
}
|
||||
}
|
||||
public BarButtonItem MoveNextButton {
|
||||
get {
|
||||
return nextBBI;
|
||||
}
|
||||
}
|
||||
public event EventHandler ZoomLevelChanged;
|
||||
void RaiseZoomLevelChanged() {
|
||||
EventHandler handler = ZoomLevelChanged;
|
||||
if(handler != null) handler(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user