WPF MVVM VB.Net 多视图应用程序
WPF MVVM VB.Net multiple views application
求助!现在已经一周了,我已经开始尝试在 VB.NET 中构建一个 MVVM 应用程序。不幸的是,98% 的文档都是面向 C# 的。我找到了一些线索,但我仍然没有找到所有答案......
我想做的事情:
具有 3 个视图的应用程序:loginView、View1 和 View2。如果没有用户连接,则显示 loginView(没问题)。当用户连接时,我应该根据他的权限加载 View1 或 View2。
应该很简单但是因为我几乎找不到这个拼图的碎片我差点掉了所有的头发...
第一期:
在 loginView 中,如何检查用户凭据?
由于我无法将任何 属性 绑定到 PasswordBox,我发现一些文档说我应该这样做:
<Button x:Name="btnLogin" Content="Log in"
Command="{Binding Path=AuthenticateUser}"
CommandParameter="{Binding ElementName=txtPassword}"/>
但是如果我设法执行了一个没有参数的命令,我找不到如何执行一个带参数的命令。有什么简单的想法吗?
要运行来自按钮的命令,我使用在那里找到的中继命令class:
所以我这样定义了一个属性:
Dim _relayCmd As New RelayCommand(AddressOf Authentication)
Public ReadOnly Property AuthenticateUser As ICommand
Get
Return _relayCmd
End Get
End Property
' Authentication method
Private Sub Authentication(ByVal _passwordBox As PasswordBox)
'do something...
End Sub
第二期:
用户连接后,如何切换到 View1 或 View2?我读了一些文档说我应该使用我的观点的可观察集合并浏览它。但是我应该更改 MainWindowView 的数据上下文。 VB.
还是没找到正确的方法
我不想让你为我做所有事情,而是我想找到一个简单的教程,可以在 VB.
中清楚地解释它是如何工作的
感谢您的帮助!
您可以将命令参数转换为 PasswordBox
:
Dim _relayCmd As New RelayCommand(AddressOf Authentication, Function(obj As Object)
Return True
End Function)
Public ReadOnly Property AuthenticateUser As ICommand
Get
Return _relayCmd
End Get
End Property
Private Sub Authentication(ByVal _passwordBox As Object)
Dim passwordBox = TryCast(_passwordBox, PasswordBox)
'do something...
End Sub
关于你的第二期,你没有提供足够的细节。但是,如果您有其他问题,请提出另一个问题。
求助!现在已经一周了,我已经开始尝试在 VB.NET 中构建一个 MVVM 应用程序。不幸的是,98% 的文档都是面向 C# 的。我找到了一些线索,但我仍然没有找到所有答案......
我想做的事情: 具有 3 个视图的应用程序:loginView、View1 和 View2。如果没有用户连接,则显示 loginView(没问题)。当用户连接时,我应该根据他的权限加载 View1 或 View2。
应该很简单但是因为我几乎找不到这个拼图的碎片我差点掉了所有的头发...
第一期: 在 loginView 中,如何检查用户凭据? 由于我无法将任何 属性 绑定到 PasswordBox,我发现一些文档说我应该这样做:
<Button x:Name="btnLogin" Content="Log in"
Command="{Binding Path=AuthenticateUser}"
CommandParameter="{Binding ElementName=txtPassword}"/>
但是如果我设法执行了一个没有参数的命令,我找不到如何执行一个带参数的命令。有什么简单的想法吗?
要运行来自按钮的命令,我使用在那里找到的中继命令class:
所以我这样定义了一个属性:
Dim _relayCmd As New RelayCommand(AddressOf Authentication)
Public ReadOnly Property AuthenticateUser As ICommand
Get
Return _relayCmd
End Get
End Property
' Authentication method
Private Sub Authentication(ByVal _passwordBox As PasswordBox)
'do something...
End Sub
第二期: 用户连接后,如何切换到 View1 或 View2?我读了一些文档说我应该使用我的观点的可观察集合并浏览它。但是我应该更改 MainWindowView 的数据上下文。 VB.
还是没找到正确的方法我不想让你为我做所有事情,而是我想找到一个简单的教程,可以在 VB.
中清楚地解释它是如何工作的感谢您的帮助!
您可以将命令参数转换为 PasswordBox
:
Dim _relayCmd As New RelayCommand(AddressOf Authentication, Function(obj As Object)
Return True
End Function)
Public ReadOnly Property AuthenticateUser As ICommand
Get
Return _relayCmd
End Get
End Property
Private Sub Authentication(ByVal _passwordBox As Object)
Dim passwordBox = TryCast(_passwordBox, PasswordBox)
'do something...
End Sub
关于你的第二期,你没有提供足够的细节。但是,如果您有其他问题,请提出另一个问题。