Добрый день. Реализовываю плагин под AutoCAD с запуском из программы, в результате чего использую библиотеку UcerControl'ов
ну то есть просто в ней создал MainView
в DataContext
присваиваю MainViewModel
, при компиляции получаю .dll которую загружаю в AutoCAD
. Но не могу понять почему в DataContext не передается экземпляр MainViewModel
таким образом запускается плагин
using Autodesk.AutoCAD.Runtime;
using Plagin_AutoCad.View;
using autoDSK = Autodesk.AutoCAD.ApplicationServices.Application;
public class StartGUI
{
[CommandMethod("startplagin")]
public static void StartPlagin()
{
MainView mainView = new MainView();
autoDSK.ShowModelessWindow(mainView);
mainView.DataContext = new ViewModel.MainViewModel();
}
}
Но события в MainViewModel не срабатываю, тот же банальный биндинг
public class MainViewModel:INotifyPropertyChanged
{
#region PropertyChangedEventHandler
/// <summary>
/// Метод проверяющий изменилось ли свойство
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
private ShowLayersViewModel _showLayers;
private ColorPickerViewModel _colorPicker;
private string _visibleColorPicker;
public MainViewModel()
{
ColorPicker = new ColorPickerViewModel();
ShowLayers = new ShowLayersViewModel();
//ColorPicker.VisibleColorPicker = "Collapsed";
VisibleColorPicker = "Collapsed";
ClickCommandVisible = new Command(arg =>
{
VisibleColorPicker = "Collapsed";
});
}
public ShowLayersViewModel ShowLayers
{
get { return _showLayers; }
set { _showLayers = value; OnPropertyChanged("ShowLayers");}
}
public ColorPickerViewModel ColorPicker
{
get { return _colorPicker; }
set { _colorPicker = value; OnPropertyChanged("ColorPicker"); }
}
public string VisibleColorPicker
{
get { return _visibleColorPicker; }
set { _visibleColorPicker = value; OnPropertyChanged("VisibleColorPicker"); }
}
public ICommand ClickCommandVisible { get; set; }
}
тут я пытаюсь изменить видимость UcerControla ColorPicker
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="150" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button Grid.Row="0" Command="{Binding ClickCommandVisible}" />
<userControls:ShowLayers Grid.Row="1" DataContext="{Binding ShowLayers}" />
<userControls:ColorPicker
Grid.Row="2"
DataContext="{Binding ColorPicker}"
Visibility="{Binding VisibleColorPicker}" />
</Grid>
Кстати Application класс нет. Как можно решить данную проблему?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Не выводит две последние колодки, выводит только название и лого, а часы не выводит
У меня есть 5 блоков с ссылкамиПри нажатии на ссылку, должна появляться менюха в модальном окне