gpt4 book ai didi

c# - 如何在 METRO 应用程序中将 GoToState 与 DataTemplate 一起使用

转载 作者:行者123 更新时间:2023-11-30 17:12:38 24 4
gpt4 key购买 nike

在我的 Page.Resources 中,我有 DataTamplate:

<DataTemplate x:Key="gridviewQuestStyle">
<Button Content="{Binding QuestNumb}" Style="{StaticResource buttonQuestStyle}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="questionStates">
<VisualState x:Name="Right">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBrush" Storyboard.TargetProperty="Color" To="LightGreen" />
</Storyboard>
</VisualState>
<VisualState x:Name="Wrong">
<Storyboard>
<ColorAnimation Storyboard.TargetName="BackgroundBrush" Storyboard.TargetProperty="Color" To="Red" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>

<Button.Background>
<SolidColorBrush x:Name="BackgroundBrush" Color="Black"/>
</Button.Background>
</Button>
</DataTemplate>

然后我创建 GridView:

<GridView Grid.Row="0" x:Name="GridView_ButtonsQuest"
ItemTemplate="{StaticResource gridviewQuestStyle}"
ItemsSource="{Binding Questions}" >
</GridView>

问题是一个列表:

public class Question
{
public string QuestNumb { get; set; }
public string QuestText { get; set; }
}

我的应用程序的逻辑是:

    if(isAnswerRight)
{
VisualStateManager.GoToState(???, "Right", false);
}
else
{
VisualStateManager.GoToState(???, "Wrong", false);
}

请解释一下,GoToState 方法的第一个参数需要什么?

最佳答案

如果 VisualState 开关出现在 Page 或 UserControl 的 .cs 文件中(不在 MVVM View 模型中)。将名称属性应用于 GridView

<GridView Grid.Row="0" x:Name="GridView_ButtonsQuest"
ItemTemplate="{StaticResource gridviewQuestStyle}"
ItemsSource="{Binding Questions}"
x:Name="myStateChanges" >
</GridView>

然后将其粘贴到 GoToState() 方法中。

if(isAnswerRight)
{
VisualStateManager.GoToState(this.myStateChanges, "Right", false);
}
else
{
VisualStateManager.GoToState(this.myStateChanges, "Wrong", false);
}

关于c# - 如何在 METRO 应用程序中将 GoToState 与 DataTemplate 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com