不知怎么的,我遇到了一个无法解决的问题。
假设我们有一个视图:
public partial class TestView : UserControl
{
public TestView(TestViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
以及注入的ViewModel:
class TestViewModel
{
public TestViewModel()
{
}
}
这在逻辑上会导致一个错误:
可访问性不一致:参数类型"TestViewModel"较小比方法"TestView"更容易访问。TestView’
因此,当我想将我的视图和ViewModel声明为内部时:
internal class TestViewModel
{
internal TestViewModel()
{
}
}
这项工作:
partial class TestView : UserControl
{
TestView(TestViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
但事实并非如此:
internal partial class TestView : UserControl
{
internal TestView(TestViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
为什么
您会得到一个错误,因为xaml认为您的类是公共的,而您的代码后面说它是internal
。将此添加到您的xaml x:ClassModifier="internal"
<UserControl x:Class="YourNamespace.TestView " x:ClassModifier="internal"