Files
aistudio-wpf-diagram/AIStudio.Wpf.DiagramDesigner/ViewModels/DefaultViewModel/MediaItemViewModel.cs

111 lines
2.8 KiB
C#
Raw Normal View History

2021-07-23 09:42:22 +08:00
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
2023-03-24 22:32:42 +08:00
using System.Windows.Input;
2023-01-25 11:11:27 +08:00
using AIStudio.Wpf.DiagramDesigner.Models;
2021-07-23 09:42:22 +08:00
2022-10-28 22:45:39 +08:00
namespace AIStudio.Wpf.DiagramDesigner
2021-07-23 09:42:22 +08:00
{
public class MediaItemViewModel : DesignerItemViewModelBase
{
protected virtual string Filter { get; set; } = "媒体·|*.*";
2023-01-27 14:54:03 +08:00
public MediaItemViewModel() : this(null)
2021-07-23 09:42:22 +08:00
{
}
2023-01-27 14:54:03 +08:00
public MediaItemViewModel(IDiagramViewModel root) : base(root)
{
}
2023-01-24 17:53:04 +08:00
public MediaItemViewModel(IDiagramViewModel root, SelectableItemBase designer) : base(root, designer)
2021-07-23 09:42:22 +08:00
{
}
2023-01-25 11:11:27 +08:00
public MediaItemViewModel(IDiagramViewModel root, SerializableItem serializableItem, string serializableType) : base(root, serializableItem, serializableType)
{
}
2023-01-24 23:10:57 +08:00
public override SelectableItemBase GetSerializableObject()
{
return new MediaDesignerItem(this);
}
2024-02-18 16:40:33 +08:00
public override void Init(IDiagramViewModel root, bool initNew)
2021-07-23 09:42:22 +08:00
{
2023-03-25 11:59:31 +08:00
base.Init(root, initNew);
2021-07-23 09:42:22 +08:00
BuildMenuOptions();
2023-03-25 11:59:31 +08:00
}
2021-07-23 09:42:22 +08:00
2023-03-25 11:59:31 +08:00
protected override void InitNew()
{
base.InitNew();
}
2021-07-23 09:42:22 +08:00
2023-01-27 14:54:03 +08:00
protected override void LoadDesignerItemViewModel(SelectableItemBase designerbase)
2021-07-23 09:42:22 +08:00
{
2023-01-27 14:54:03 +08:00
base.LoadDesignerItemViewModel(designerbase);
2021-07-23 09:42:22 +08:00
2023-01-24 17:53:04 +08:00
if (designerbase is MediaDesignerItem designer)
2021-07-23 09:42:22 +08:00
{
2023-01-24 17:53:04 +08:00
this.Icon = designer.Icon;
2021-07-23 09:42:22 +08:00
}
}
private void BuildMenuOptions()
{
menuOptions = new ObservableCollection<CinchMenuItem>();
CinchMenuItem menuItem = new CinchMenuItem();
menuItem.Text = "更换";
menuItem.Command = MenuItemCommand;
menuItem.CommandParameter = menuItem;
menuOptions.Add(menuItem);
}
2023-03-24 22:32:42 +08:00
private ICommand _menuItemCommand;
public ICommand MenuItemCommand
2021-07-23 09:42:22 +08:00
{
get
{
2023-01-25 23:55:30 +08:00
return this._menuItemCommand ?? (this._menuItemCommand = new SimpleCommand(Command_Enable, ExecuteMenuItemCommand));
2021-07-23 09:42:22 +08:00
}
}
private void ExecuteMenuItemCommand(object obj)
{
EditData();
}
2023-05-03 18:35:01 +08:00
public override bool Verify()
2021-07-23 09:42:22 +08:00
{
if (string.IsNullOrEmpty(Icon))
return EditData();
return true;
}
public override bool EditData()
{
Microsoft.Win32.OpenFileDialog openFile = new Microsoft.Win32.OpenFileDialog();
openFile.Filter = Filter;
if (openFile.ShowDialog() == true)
{
Icon = openFile.FileName;
return true;
}
return false;
}
protected override void ExecuteEditCommand(object param)
{
}
}
}