【发布时间】:2014-01-08 18:23:20
【问题描述】:
我目前正在创建一个 connect-4 游戏以学习 WPF 和 XAML。我制作了 UI,但遇到了一个问题。
您可以在下面看到有关游戏板的 XAML 代码摘录:
<Grid DockPanel.Dock="Bottom" Background="#FF1506A4" MouseLeftButtonUp="Grid_MouseLeftButtonUp_1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
... 5 more rows
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
... 6 more columns
</Grid.ColumnDefinitions>
<Ellipse Grid.Row="0" Grid.Column="0" Fill="White" Margin="8"/>
... 41 more ellipses
</Grid>
棋盘存储在 GameState 类中的 Token 数组(一个 Empty、Red 和 Yellow 的枚举)中。
椭圆的颜色是使用 SolidBrushColor 类提供的。
我的问题是我不知道如何根据游戏模型改变椭圆的颜色。
我想我应该使用数据绑定,但我必须在绑定数据之前将颜色从 Token 类型转换为 SolidBrushColor 类型。我认为它可以使用一些 DataObjectProvider 对象来实现,但是为这样一个简单的任务创建 42 个 DataObjectProvider 对象似乎过于复杂......
那么根据最佳实践,正确的解决方案是什么?
【问题讨论】:
-
这里提供了这么多帮助,却没有人接受甚至赞成?我认为upvote is a more proper way to say thank you 在这个网站
-
很抱歉,我因为工作面试而缺席了几天。我很快就会回到代码上来。
-
这就是原因。没关系,慢慢来。我上面的评论是以防万一..
标签: c# wpf xaml xaml-binding