我有一个 WPF 窗口,其中包含ContentControl使用DataTemplate在 Windows 资源中定义的a :
<Window (...)>
<Control.Resources>
<DataTemplate DataType="{x:Type local:MainVM}">
<local:MainView />
</DataTemplate>
</Control.Resources>
<ContentControl Content="{Binding}" />
<!--<local:MainView /> This Works as expected -->
</Window>
Run Code Online (Sandbox Code Playgroud)
为了测试,这MainView是一个没有内容的普通 wpf 用户控件。
在我的 MainWindow 构造函数中,我设置了 datacontext 一次:
public MainWindow()
{
InitializeComponent();
DataContext = new MainVM();
}
Run Code Online (Sandbox Code Playgroud)
通常,MainView如果我从不更改DataContext窗口的,我希望构造函数只被调用一次。
但是,每次我使用远程桌面登录我的机器时,或者当我按下“切换用户”并重新登录时,都会调用它:
public MainView()
{
InitializeComponent(); // <--- this is called upon loggin on
}
Run Code Online (Sandbox Code Playgroud)
既不调用窗口DataContextChanged事件也不MainView.Unloaded调用事件。
这仅发生在我的 Windows 10 Pro 64 位 …
.NET Clipboard 类具有将文件放入剪贴板并定义是否应移动或复制(剪切/复制)的方法。
但是,如果我想粘贴复制到剪贴板中的文件,我看不到文件是使用标准剪贴板方法剪切还是复制的。