该类的实例是作为名为“ViewModel”的公共属性公开的视图代码的私有成员。
答案 0 :(得分:2)
您正在将Grid的DataContext设置为等于" ViewModel"的字符串。您需要确保DataContext属性已正确设置为实际ViewModel
对象实例,无论是绑定还是后面的代码。
有关详细信息,请参阅我对问题What is DataContext for?
的回答答案 1 :(得分:0)
我同意雷切尔的回答。设置DataContext
的{{1}}的简便方法可能是:
Grid
这样您就无需触及<Window.Resources>
<YourNamespace:ViewModel x:Key="ViewModel"/>
</Window.Resources>
<Grid DataContext="{StaticResource ViewModel}">
<TextBox Text="{Binding Path=TestName}" Height="23" HorizontalAlignment="Left" Margin="12,12,0,0" Name="TextBox1" VerticalAlignment="Top" Width="479" />
</Grid>
/ Window
背后的代码。
如果您不想更改视图中的代码并希望保留UserControl
属性,那么您也可以这样做:
ViewModel
因此,您无需在视图中设置Public Class View Inherits Window
Private m_ViewModel As ViewModel
Public Property ViewModel() As ViewModel
Get
Return m_ViewModel
End Get
Set
m_ViewModel = Value
End Set
End Property
Public Sub New()
InitializeComponent()
ViewModel = New ViewModel()
DataContext = ViewModel
End Sub
End Class
,只需执行以下操作:
DataContext