add Drawer demo
This commit is contained in:
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user