Somehow I came across an issue I cannot figure out.
Assuming we have a View:
public partial class TestView : UserControl
{
public TestView(TestViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
And the injected ViewModel:
class TestViewModel
{
public TestViewModel()
{
}
}
This logically results in an error:
Inconsistent accessibility: parameter type 'TestViewModel' is less accessible than method 'TestView.TestView'
So when I want to declare my View and ViewModel as internal:
internal class TestViewModel
{
internal TestViewModel()
{
}
}
This works:
partial class TestView : UserControl
{
TestView(TestViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
But this doesn't:
internal partial class TestView : UserControl
{
internal TestView(TestViewModel vm)
{
InitializeComponent();
DataContext = vm;
}
}
Why?