1
標題幾乎說明了一切。分數顯示爲0(這是我初始化它)。但是,更新分數時,它不會傳播到UI textBlock。認爲這將是非常簡單的,但我總是遇到問題,從Android切換:)我想在UI線程上運行的東西?Windows 8應用程序文本框數據綁定不起作用
我試圖綁定到「Score」屬性。
<TextBox x:Name="text_Score" Text="{Binding Score, Mode=OneWay}" HorizontalAlignment="Left" Margin="91,333,0,0" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment="Top" Height="148" Width="155" FontSize="72"/>
這裏是我的座級
public class GameInfo
{
public int Score { get; set; }
public int counter = 0;
}
**注:請務必不要忘記添加{獲得;設置;}否則什麼都不會顯示出來。
而這正是我試圖把它
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
info.counter = (int)e.Parameter;
text_Score.DataContext = info;
}
附:重申一下,我要去OneWay。我只想顯示分數,並在變量發生變化時使其不顯示。我計劃禁用用戶輸入。
以下是完整的工作代碼示例。唯一需要改變的是我的持有人課程。謝謝沃爾特。
public class GameInfo : INotifyPropertyChanged
{
private int score;
public int Score {
get { return score; }
set
{
if (Score == value) return;
score = value;
NotifyPropertyChanged("Score");
}
}
public int counter = 0;
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
那麼改變類,我沒有用代碼實現,它得到了反正公佈。我會再添加一些,因爲這些屬性還在調用NotifyPropertyChanged。 –
您還需要在Score setter中致電NotifyPropertyChanged –
感謝Walt。你說的是有道理的。其實我只是四處尋找,正在尋找一個這樣的例子。不過,我不明白_score –