Я создаю форму входа, которая будет использоваться многими различными приложениями.Логин всегда будет иметь одинаковую логику, поэтому я бы хотел привязать модель представления и выполнить всю логику там (получение информации о логине из базы данных и т. Д.).Я создал новые UserControl
, MainView
и ViewModel MainViewModel
, которые оба находятся в пространстве имен Login
.
Форма продолжает выполнять все, что находится в коде, но ничего в ВМ.Есть ли другой способ связывания, о котором я не знаю?
Код позади MainView.Xaml.vb
Imports Caliburn.Micro
Namespace Login
Public Class MainView
Public Sub New()
MsgBox("TEST code-behind")
End Sub
End Class
End Namespace
VM MainViewModel.vb
Imports Caliburn.Micro
Namespace Login
Public Class MainViewModel
Inherits PropertyChangedBase
Public Sub New()
MsgBox("TEST ViewModel")
End Sub
End Class
End Namespace
Xaml
<UserControl x:Class="Login.MainView"
xmlns:cal="http://www.caliburnproject.org"
xmlns:local="clr-namespace:cLogin.Login"
cal:Bind.Model="cLogin.Login.MainViewModel" (not sure if needed due to naming)
... >
РЕДАКТИРОВАТЬ Так я добавил UserControl
в качестве отдельного окна перед тем, как пользовательвошел в систему, я вижу содержимое, но ни одно из свойств внутри привязки ViewModel
Dim login As New Window
With login
.WindowStyle = WindowStyle.None
.ResizeMode = ResizeMode.NoResize
.SizeToContent = SizeToContent.WidthAndHeight
.Content = New MainView()
End With
login.ShowDialog()