using Autodesk.Revit.DB; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using ShrlAlgoToolkit.RevitAddins.RvMEP; namespace ShrlAlgoToolkit.RevitAddins.RvView; public partial class SystemDisplayViewModel : ObservableRecipient/*, IRecipient*/ { //private SystemModel currentModel; [ObservableProperty] public partial List SystemsCollection { get; set; } public SystemDisplayViewModel(UIApplication uiapp) { var doc = uiapp.ActiveUIDocument.Document; var enumerable = doc.OfClass().Cast(); var systemModels = from mepSystemType in enumerable let model = new SystemModel(mepSystemType) select model; SystemsCollection = [.. systemModels]; //IsActive = true; //订阅 //WeakReferenceMessenger.Default.RegisterAll(this); //WeakReferenceMessenger.Default.Register(this); //WeakReferenceMessenger.Default.Register(this, (r, m) => //{ // TaskDialog.Show("消息", "收到消息"); //}); //Messenger.Register(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) // ); // } //} //[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(this, (r, m) => // //{ // // color = m; // //}); // } //} [RelayCommand] private void Save() { } }