【问题标题】:XAML Command Inside a Style样式中的 XAML 命令
【发布时间】:2017-08-11 10:35:34
【问题描述】:

UWP 我正在尝试在按钮样式上设置命令,但我的命令没有触发 :(

有什么明显的想法吗?

<Style x:Key="TimeBtnStyle" BasedOn="{StaticResource ClickBtnStyle}" TargetType="Button">
    <Setter Property="Command" Value="{Binding Path=vm.CommandTester}"/>
    <Setter Property="CommandParameter" Value="{Binding Content}"/>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <Grid x:Name="RootGrid" Background="Transparent">
                    <Border CornerRadius="12" Background="White" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="4">
                        <ContentPresenter x:Name="ContentPresenter" AutomationProperties.AccessibilityView="Raw" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" ContentTransitions="{TemplateBinding ContentTransitions}">
                        </ContentPresenter>
                    </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

【问题讨论】:

  • Setter 不支持绑定。即使有,也不要这样做。
  • @JustinXL 那么如何从样式中调用命令?
  • 我不建议这样做。为什么你需要一个风格的命令呢?
  • @JustinXL 因为我有多个按钮都具有相同的样式和命令。我认为将命令放在样式​​中是要走的路?
  • 我会把它放在UserControl中。

标签: xaml mvvm uwp uwp-xaml


【解决方案1】:

您可以将按钮放在 ContentControl 的 ContentTemplate 中。

<DataTemplate x:Key="ItemTemplate">
  <Button Command="{Binding ICommand}"/>
</DataTemplate>

<ContentControl ContentTemplate="{StaticResource ItemTemplate}"/>
<ContentControl ContentTemplate="{StaticResource ItemTemplate}"/>
<ContentControl ContentTemplate="{StaticResource ItemTemplate}"/>

【讨论】:

    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    相关资源
    最近更新 更多