将View+ViewModel声明为内部
本文关键字:内部 声明 View+ViewModel | 更新日期: 2023-09-27 18:00:18
不知怎么的,我遇到了一个无法解决的问题。
假设我们有一个视图:
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"