このデータバインディングは私を困惑させます。ボタンのテキストをプレイヤーの人生のテキストにバインドしようとしています。私は他のいくつかの記事に続き、私はそれを持っていたと思って、アプリが実行されますが、ボタンのテキストは空白のままです。ここに私のXAMLは次のとおりです。ここでUWPアプリケーションでXAML/C#で双方向データバインディングを許可するにはどうすればよいですか?
<Page.DataContext>
<local:Player x:Name="PlayerCur"></local:Player>
</Page.DataContext>
<Grid Background="#FFFFFFFF">
<StackPanel Margin="0,0,181,0">
<TextBlock x:Name="LifeTitle" TextAlignment="Center" FontSize="40" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center" TextWrapping="Wrap" Text="Life" Height="56" Width="139"/>
<Button Name="Life" Content="{Binding PlayerLife}" FontSize="50" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center" Height="126" Width="139">
<Button.Flyout>
<MenuFlyout>
<MenuFlyoutItem Text="Reset Life" Click="Reset_Life_Click"/>
<MenuFlyoutSeparator/>
<MenuFlyoutSubItem x:Name="lAdd" Text="Heal" >
<MenuFlyoutItem x:Name="lAddone" Text="+1" Click="Add_OneL_Click"/>
<MenuFlyoutItem x:Name="lAddfive" Text="+5" Click="Add_FiveL_Click"/>
<MenuFlyoutItem x:Name="lAddten" Text="+10" Click="Add_TenL_Click"/>
</MenuFlyoutSubItem>
<MenuFlyoutSubItem x:Name="lSubtract" Text="Deal Damage">
<MenuFlyoutItem x:Name="lSubone" Text="-1" Click="Sub_OneL_Click"/>
<MenuFlyoutItem x:Name="lSubthree" Text="-5" Click="Sub_FiveL_Click"/>
<MenuFlyoutItem x:Name="lSubfive" Text="-10" Click="Sub_TenL_Click"/>
</MenuFlyoutSubItem>
<MenuFlyoutSeparator></MenuFlyoutSeparator>
</MenuFlyout>
</Button.Flyout>
</Button>
</StackPanel>
はプレイヤークラスです:
namespace App1.Classes
{
public class Player: INotifyPropertyChanged
{
private string _PlayerLife;
private string _PlayerPoison;
private int _life = 20;
private int _poison = 0;
public string PlayerLife
{
get { return _PlayerLife; }
}
public string PlayerPoison
{
get { return _PlayerPoison; }
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public void reset(int destination)
{
if(destination==0)
{
_life = 20;
OnPropertyChanged("Life");
}
else if(destination==1)
{
_poison = 0;
OnPropertyChanged("Poison");
}
else
{
}
}
public void incrementer(int destination,int modifier)
{
if(destination==0)
{
_life = _life + modifier;
_PlayerLife = _life.ToString();
OnPropertyChanged("life");
}
else if(destination==1)
{
_poison = _poison + modifier;
_PlayerPoison = _poison.ToString();
OnPropertyChanged("poison");
}
else
{
}
}
}
私は問題のように感じるとき、人生と毒の変化私のクラスは、XAMLを通知していないとされます。
どのような提案/ポインターにも大変感謝しています。
ありがとうございます!それは働いた –