내 데이터 클래스에서 내 모델 클래스의 메서드를 호출하려고하는데 컴파일하는 것 같지 않습니다. "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."라는 오류 메시지를 표시합니다.X : 데이터 템플릿을 이벤트로 바인딩
On pointerPressed 내 lvitem 호출에서 X : bind를 사용하여 "Poke"메서드를 호출하려고합니다.
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ListView Grid.Column="0" ItemsSource="{x:Bind m_ViewModel.ListItems}" >
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:lvitem">
<TextBlock PointerPressed="{x:Bind Poke , Mode=OneWay }"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<TextBlock Grid.Column="1" Text="{x:Bind m_ViewModel._Name, Mode=TwoWay}"/>
</Grid>
MyViewModel
Imports Windows.UI
Namespace MyViewModel
Public Class MyViewModel
Implements INotifyPropertyChanged
Private Sub NotifyPropertyChanged(Optional propertyName As String = "")
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
End Sub
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Private Name As String
Private List_Items As New ObservableCollection(Of lvitem)
Public Property _Name As String
Get
Return Name
End Get
Set(value As String)
Name = value
NotifyPropertyChanged()
End Set
End Property
Public Sub New()
Name = "Cater"
Dim lvi As New lvitem
Dim lvi2 As New lvitem
List_Items.Add(lvi)
List_Items.Add(lvi2)
End Sub
Public Property ListItems As ObservableCollection(Of lvitem)
Get
Return List_Items
End Get
Set(value As ObservableCollection(Of lvitem))
List_Items = value
End Set
End Property
Public Sub ClickMe()
_Name = "Clicked"
End Sub
End Class
End Namespace
코드 숨김
Public NotInheritable Class MainPage
Inherits Page
Public Property ViewModel() As MyViewModel.MyViewModel
Get
Return m_ViewModel
End Get
Set
m_ViewModel = Value
End Set
End Property
Private m_ViewModel As MyViewModel.MyViewModel
Public Sub New()
Me.InitializeComponent()
ViewModel = New MyViewModel.MyViewModel
End Sub
Private Sub Rectangle_PointerPressed(sender As Object, e As PointerRoutedEventArgs)
End Sub
Private Sub TextBlock_PointerPressed(sender As Object, e As PointerRoutedEventArgs)
End Sub
End Class
Lvitem 클래스 - 모델
Public Class lvitem
Public Sub New()
End Sub
Public Sub Poke(sender As Object, e As Object)
Dim meint As Integer
meint = 3
End Sub
End Class