XML 窗口:
<Window x:Class="prod_bw.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:prod_bw"
xmlns:models="clr-namespace:prod_bw.Models"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.DataContext>
<models:Game />
</Window.DataContext>
<Grid>
...
</Grid>
</Window>
游戏代码:
namespace prod_bw.Models
{
internal class Game
{
public int Kills { get; }
public int Deaths { get; }
public Game(int kills, int deaths)
{
Kills = kills;
Deaths = deaths;
}
}
}
试图在游戏中实现上下文INotifyPropertyChanged
,没有帮助。该解决方案不断重建。
项目结构:
无需赘述,您可以通过删除带参数的构造函数或制作不带参数的构造函数来实现
public Game() { ... }
。也就是说,使类公开
public
并且属性可变{ get; set; }
然后你可以像这样在 XAML 中创建一个类
如果需要零,则
Kills="5" Deaths="10"
可以选择设置,您可以将其删除。然后,如果您希望 UI 控件跟踪模型中的更改,则需要实现
INotifyPropertyChanged
. 我已经更详细地讨论了这一点,并在这个答案中展示了它。