整理代码
This commit is contained in:
74
ShrlAlgoToolkit.RevitAddins/RvView/SystemDisplayViewModel.cs
Normal file
74
ShrlAlgoToolkit.RevitAddins/RvView/SystemDisplayViewModel.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using Autodesk.Revit.DB;
|
||||
using Autodesk.Revit.UI;
|
||||
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using CommunityToolkit.Mvvm.Messaging;
|
||||
|
||||
using ShrlAlgo.RvKits.RvMEP;
|
||||
using ShrlAlgo.RvKits.Windows;
|
||||
|
||||
namespace ShrlAlgo.RvKits.RvView;
|
||||
|
||||
public partial class SystemDisplayViewModel : ObservableRecipient, IRecipient<Color>
|
||||
{
|
||||
private SystemModel currentModel;
|
||||
|
||||
[ObservableProperty]
|
||||
private List<SystemModel> systemsCollection;
|
||||
|
||||
public SystemDisplayViewModel(UIApplication uiapp)
|
||||
{
|
||||
var doc = uiapp.ActiveUIDocument.Document;
|
||||
var enumerable = doc.OfClass<MEPSystemType>().Cast<MEPSystemType>();
|
||||
var systemModels = from mepSystemType in enumerable let model = new SystemModel(mepSystemType) select model;
|
||||
SystemsCollection = new List<SystemModel>(systemModels);
|
||||
IsActive = true;
|
||||
//订阅
|
||||
//WeakReferenceMessenger.Default.RegisterAll(this);
|
||||
//WeakReferenceMessenger.Default.Register<SelectedColor>(this);
|
||||
|
||||
//WeakReferenceMessenger.Default.Register<SelectedColor>(this, (r, m) =>
|
||||
//{
|
||||
// TaskDialog.Show("消息", "收到消息");
|
||||
//});
|
||||
|
||||
//Messenger.Register<SystemDisplayViewModel, ColorPickerViewModel>(this, (r, m) =>
|
||||
//{
|
||||
//});
|
||||
}
|
||||
|
||||
public void Receive(Color message)
|
||||
{
|
||||
//TaskDialog.Show("消息", "收到颜色消息");
|
||||
if (message != null)
|
||||
{
|
||||
currentModel.FillColor = message;
|
||||
currentModel.BackgroundColor = new System.Windows.Media.SolidColorBrush(
|
||||
System.Windows.Media.Color.FromRgb(message.Red, message.Green, message.Blue)
|
||||
);
|
||||
}
|
||||
|
||||
//currentModel.BackgroundColor = System.Windows.Media.SelectedColor.FromRgb(message.Red, message.Green, message.Blue);
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void OpenColorPicker(object obj)
|
||||
{
|
||||
if (obj is SystemModel model)
|
||||
{
|
||||
currentModel = model;
|
||||
var viewModel = model.FillColor.IsValid
|
||||
? new ColorPickerViewModel(
|
||||
System.Windows.Media.Color.FromRgb(model.FillColor.Red, model.FillColor.Green, model.FillColor.Blue)
|
||||
)
|
||||
: new ColorPickerViewModel(System.Windows.Media.Color.FromRgb(0, 0, 0));
|
||||
var win = new ColorPickerWin(viewModel);
|
||||
win.ShowDialog();
|
||||
//WeakReferenceMessenger.Default.Register<SelectedColor>(this, (r, m) =>
|
||||
//{
|
||||
// color = m;
|
||||
//});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user