私はデータ バインディングを処理しようとしてきましたが、それを機能させるのに問題があります。誰かが私を正しい方向に向けることができますか?
私はVS2012を使用しており、WPF/vb.netでプログラミングしています。xaml UI、プロパティを更新するクラス、メイン ループを実行するモジュールがあります。モジュールからの動的データに基づいて、UI でテキストブロックを更新しようとしています。
UI からの重要な XAML を次に示します。
<Page x:Class="pPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:BMI_WPF_v1"
mc:Ignorable="d"
Title="BMI">
<Page.Resources>
<local:clsItemGUI x:Key="clsitemgui" />
</Page.Resources>
<TextBlock x:FieldModifier="public" x:Name="p_force" Text="{Binding Path=Force, UpdateSourceTrigger=PropertyChanged}" />
GUI の更新を試みるために、メイン モジュールで呼び出しているのは次のとおりです。
Dim bmiUI As New clsItemGUI
bmiUI.UpdateForce(currentForce)
GUI を更新するためのクラスは次のとおりです。
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Public Class clsItemGUI
Implements INotifyPropertyChanged
Private ForceValue As Double
Sub New()
End Sub
Public Sub UpdateForce(ByVal inputForce As String)
Me.ForceValue = inputForce
End Sub
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Public Property Force() As Double
Get
Return ForceValue
End Get
Set(ByVal value As Double)
ForceValue = value
OnPropertyChanged("Force")
End Set
End Property
Protected Sub OnPropertyChanged(ByVal name As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(name))
End Sub
End Class
ForceValue を更新しているように見えますが、それは UI の更新をトリガーしていません。明らかに、私は何かばかげたことを見逃していますが、まだ適切なリソースを見つけていません。