不知怎的,我遇到了一个我无法弄清楚的问题。
假设我们有一个视图:
public partial class TestView : UserControl
{
public TestView(TestViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
注入的ViewModel:
class TestViewModel
{
public TestViewModel()
{
}
}
这在逻辑上会导致错误:
可访问性不一致:参数类型“TestViewModel”较少 比方法'TestView.TestView'
可访问
所以当我想将我的View和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;
}
}
为什么吗
答案 0 :(得分:1)
您收到错误,因为xaml认为您的类是公开的,而后面的代码表示它是internal
。将其添加到您的xaml x:ClassModifier="internal"
<UserControl x:Class="YourNamespace.TestView " x:ClassModifier="internal"