我下载了适用于Windows Phone的Microsoft Visual Studio 2010 Express,我编写了一个简单的应用程序来对模拟器进行首次测试。在这个应用程序中,我只有一个按钮,其属性Content绑定到一个名为ButtonText的字符串,并且属性Background绑定到名为FillColor的SolidColorBrush。我使用以下代码处理了Click事件:
void MyButton_Click(object sender, RoutedEventArgs e)
{
if (toggle == true)
{
ButtonText = "Blue";
FillColor = new SolidColorBrush(Colors.Blue);
}
else
{
ButtonText = "Red";
FillColor = new SolidColorBrush(Colors.Red);
}
toggle = !toggle;
}
不幸的是,这不起作用。虽然每次按下按钮时按钮的内容都会改变,但对于保持相同颜色的背景,我不能说相同。
你能告诉我有什么问题吗?谢谢。
我也发布了XAML:
<Grid x:Name="ContentGrid" Grid.Row="1">
<Button Name="MyButton" Width="300" Height="300"
Content="{Binding Path=ButtonText}"
Background="{Binding Path=FillColor}" />
</Grid>
答案 0 :(得分:1)
问题在于使用行中的“新”:
FillColor = new SolidColorBrush(Colors.Blue);
使用“new”操作会破坏先前设置的数据绑定。请尝试使用以下内容:
FillColor.Color = Colors.Blue;
将更改替换为蓝色和红色,这应该可以解决问题。
HTH!
克里斯