add Drawer demo

This commit is contained in:
NaBian committed 2019-11-25 01:07:04 +08:00
1 parent 453839e763
commit d145dee9c9
29 files changed
+768 -566

No files matched your search

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Windows.Controls;
#if netle40
using GalaSoft.MvvmLight.Command;
@@ -29,9 +30,14 @@ namespace HandyControlDemo.ViewModel
private object _subContent;
/// <summary>
/// 当前选中的列表项
/// demo信息
/// </summary>
private ListBoxItem _listBoxItemCurrent;
private List<DemoInfoModel> _demoInfoList;
/// <summary>
/// 当前选中的demo项
/// </summary>
private DemoItemModel _demoItemCurrent;
#endregion
@@ -45,13 +51,18 @@ namespace HandyControlDemo.ViewModel
}
SubContent = obj;
});
Messenger.Default.Register<object>(this, MessageToken.ClearLeftSelected, obj =>
{
if (_listBoxItemCurrent == null) return;
_listBoxItemCurrent.IsSelected = false;
_listBoxItemCurrent = null;
_demoItemCurrent = null;
foreach (var item in DemoInfoList)
{
item.SelectedIndex = -1;
}
});
DataList = dataService.GetDemoDataList();
DemoInfoList = dataService.GetDemoInfo();
}
#region 属性
@@ -82,6 +93,19 @@ namespace HandyControlDemo.ViewModel
#endif
}
/// <summary>
/// demo信息
/// </summary>
public List<DemoInfoModel> DemoInfoList
{
get => _demoInfoList;
#if netle40
set => Set(nameof(DemoInfoList), ref _demoInfoList, value);
#else
set => Set(ref _demoInfoList, value);
#endif
}
#endregion
#region 命令
@@ -115,24 +139,16 @@ namespace HandyControlDemo.ViewModel
private void SwitchDemo(SelectionChangedEventArgs e)
{
if (e.AddedItems.Count == 0) return;
if (e.AddedItems[0] is ListBoxItem item)
if (e.AddedItems[0] is DemoItemModel item)
{
if (item.Tag is string tag)
{
if (Equals(_listBoxItemCurrent, item)) return;
_listBoxItemCurrent = item;
ContentTitle = item.Content;
var obj = AssemblyHelper.ResolveByKey(tag);
var ctl = obj ?? AssemblyHelper.CreateInternalInstance($"UserControl.{tag}");
Messenger.Default.Send(ctl is IFull, MessageToken.FullSwitch);
Messenger.Default.Send(ctl, MessageToken.LoadShowContent);
}
else
{
_listBoxItemCurrent = null;
ContentTitle = null;
SubContent = null;
}
if (Equals(_demoItemCurrent, item)) return;
_demoItemCurrent = item;
ContentTitle = item.Name;
var obj = AssemblyHelper.ResolveByKey(item.TargetCtlName);
var ctl = obj ?? AssemblyHelper.CreateInternalInstance($"UserControl.{item.TargetCtlName}");
Messenger.Default.Send(ctl is IFull, MessageToken.FullSwitch);
Messenger.Default.Send(ctl, MessageToken.LoadShowContent);
}
}