다음 ViewModel이 있으며 Caliburn Micro를 사용하고 있습니다. IWindowManager 인스턴스가 제대로 해석되고 모든 코드가 작동합니다. TODO 주석에서 알 수 있듯이 AlwaysOnTop 특성을 토글 할 수 있도록 현재 창에 대한 참조를 가져와야합니다. 어떻게해야합니까?Caliburn 관리 창 항상 켜기
namespace CaliburnWizardPlay
{
[Export(typeof(DropWindowViewModel))]
public class DropWindowViewModel : PropertyChangedBase, IHaveDisplayName
{
private readonly IWindowManager windowManager;
[ImportingConstructor]
public DropWindowViewModel(IWindowManager windowManager)
{
this.windowManager = windowManager;
}
public string DisplayName
{
get { return "Main Window"; }
set { }
}
public bool AlwaysOnTop
{
get { return Settings.Default.DropWindowAlwaysOnTop; }
set
{
Settings.Default.DropWindowAlwaysOnTop = value;
Settings.Default.Save();
NotifyOfPropertyChange(() => AlwaysOnTop);
//todo: toggle the AOT attribute of the window
}
}
public void FileDropped(DragEventArgs eventArgs)
{
if (eventArgs.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] droppedFilePaths = eventArgs.Data.GetData(DataFormats.FileDrop, true) as string[];
foreach (string path in droppedFilePaths)
{
MessageBox.Show(path);
}
windowManager.ShowWindow(new WizardViewModel());
}
}
}
}
내 질문이 명확하지 않거나 아무도 속성을 설정하는 방법을 알고 있습니까? – michaelkoss