Xaml 我的windows应用商店应用中的慢速样式绑定

Xaml 我的windows应用商店应用中的慢速样式绑定,xaml,windows-8,windows-store-apps,Xaml,Windows 8,Windows Store Apps,我的xaml中有一些按钮,我想根据一些值动态绑定样式。这一切都很好,但可能有一两秒钟的时间,我的应用程序仍在加载,因此按钮的样式不正确。我的应用程序将加载,但我有一个列表视图,它正在等待从web服务接收一些数据。在列表视图绑定之前,按钮似乎不会被绑定 有没有一种方法可以在我的按钮上设置“默认”样式,但在运行时仍然绑定我的按钮,而不必为每个按钮设置所有属性?或者为什么我的纽扣需要这么长时间才能系好?我能把它们排在优先顺序吗 这是我的按钮 <Button x:Name="ButtonAll"

我的xaml中有一些按钮,我想根据一些值动态绑定样式。这一切都很好,但可能有一两秒钟的时间,我的应用程序仍在加载,因此按钮的样式不正确。我的应用程序将加载,但我有一个列表视图,它正在等待从web服务接收一些数据。在列表视图绑定之前,按钮似乎不会被绑定

有没有一种方法可以在我的按钮上设置“默认”样式,但在运行时仍然绑定我的按钮,而不必为每个按钮设置所有属性?或者为什么我的纽扣需要这么长时间才能系好?我能把它们排在优先顺序吗

这是我的按钮

<Button x:Name="ButtonAll" Click="ButtonAll_Click" Style="{Binding State,Converter={StaticResource ButtonStateConverter},ConverterParameter=All}" Margin="0,0,50,0">All</Button>

调试时,转换何时发生?绑定是异步触发的吗?是否触发两次,一次用于加载页面,另一次用于更改值?您应该尝试使用
VisualStates
更改按钮的内容,绑定到状态只会触发状态更改。您可能需要创建一个简单的自定义
按钮
类,该类具有可绑定的
DependencyProperty
。因此,我最终以另一种方式解决了这个问题,从我的viewmodel使用样式绑定,而不是使用转换器。这消除了任何需要做转换的飞行。非常好!添加概述它的答案,然后将其设置为答案。
SampleState state = (SampleState)value;

SampleState param = new SampleState() { Code = (string)parameter, Name = (string) parameter };

if (state == param)
     return App.Current.Resources["TextPrimaryButtonStyle"];
else
     return App.Current.Resources["TextSecondaryButtonStyle"];