作为初学者,我有一个初学者的问题。这是关于一个名为黑白棋(奥赛罗)的小游戏。 我想将名为Stone的类与我的XAML文件绑定。我打算使用类的属性来更改省略号的布局。不确定在.XAML文件中或在运行时在.cs文件中构建64个省略号是否更好。
我很欣赏这个小项目的战略帮助。我在XAML中阅读了很多介绍,但是找不到一个很好的例子......
namespace Reversi
{
class Stone
{
private static int _CountStones;
public static int CountStones
{
get { return _CountStones; }
}
private Boolean _Color;
public Boolean Color
{
get { return _Color; }
set { _Color = value; }
}
[....]
我只是想弄清楚如何在XAML文件中绑定这些属性。
这是我到目前为止所做的:
xmlns:sto="clr-namespace:Reversi"
现在我想做那样的事情:
<Ellipse Name="{Binding ElementName=ID???}" Fill="{Binding Path:Color}" Grid.Row="2" Grid.Column="2"></Ellipse>
我知道Fill属性是Brush类型,我的Color属性是布尔值...稍后会构建一个类型转换器但是我知道它会描述我的问题。
如果您需要任何进一步的信息,请告诉我,我希望这个解释不会太模糊。
干杯
答案 0 :(得分:2)
首先,您必须了解WPF中的DataBiding。
为你的例子。它只是代码的一部分。它展示了如何在WPF中绑定数据。
首先,您必须像这样实现INotifyPropertyChanged
类的Stone
接口。
public class Stone : INotifyPropertyChanged
{
private static int _CountStones;
public static int CountStones
{
get { return _CountStones; }
}
private Boolean _Color;
public Boolean Color
{
get { return _Color; }
set {
if (value == _Color)
return;
_Color = value;
OnPropertyChanged("Color");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
下一步必须使用xaml视图绑定Stone
类。
您的View类中的代码
构造函数
public YourViewClassName()
{
this.DataSource = new Stone();
}
然后你可以这样做
<Ellipse Fill="{Binding Color}" Grid.Row="2" Grid.Column="2"></Ellipse>
颜色将与Stone
类属性绑定
一些信息: