我一直在嘗試獲取數據綁定的句柄,並且遇到了麻煩使其工作。有人能指引我朝着正確的方向嗎?數據綁定不能在WPF中使用VB.NET
我使用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上的更新。顯然我錯過了一些愚蠢的東西,但是我還沒有找到合適的資源。
我認爲你需要設置你的類到頁面數據上下文而不是資源 – failedprogramming 2013-03-18 20:28:47
嗯,我以爲我已經這樣做了?你能舉一個你的意思嗎? – gadget00 2013-03-18 20:45:53