如何将单击的按钮的 id 发送到命令?

发布于 2024-10-09 01:42:38 字数 633 浏览 0 评论 0原文

我在数据模板中有一个按钮。单击按钮时,我想将按钮的 id 发送到我的命令。下面的代码片段显然不起作用。我做错了什么?

<DataTemplate>
<Button CommandParameter="ProductId" x:Name="btnProduct" Width="180" Height="40" Content="{Binding DisplayText}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <n:ExecuteCommandAction Command="{Binding ShowSandwichPriceCommand}" 
                Parameter="{Binding ElementName=btnProduct, Path=SelectedValue}"
            />
        </i:EventTrigger>
    </i:Interaction.Triggers>                           
</Button>
</DataTemplate>

I've got a button inside a datatemplate. When the button is clicked I'd like to send the id of the button to my command. The snippet below obviously dosn't work. What am i doing wrong?

<DataTemplate>
<Button CommandParameter="ProductId" x:Name="btnProduct" Width="180" Height="40" Content="{Binding DisplayText}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <n:ExecuteCommandAction Command="{Binding ShowSandwichPriceCommand}" 
                Parameter="{Binding ElementName=btnProduct, Path=SelectedValue}"
            />
        </i:EventTrigger>
    </i:Interaction.Triggers>                           
</Button>
</DataTemplate>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

下雨或天晴 2024-10-16 01:42:38

按钮元素没有 SelectedValue 属性。

您可能想改用 Name 属性或其他可用属性。

<DataTemplate>
<Button CommandParameter="ProductId" x:Name="btnProduct" Width="180" Height="40" Content="{Binding DisplayText}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <n:ExecuteCommandAction Command="{Binding ShowSandwichPriceCommand}" 
                Parameter="{Binding ElementName=btnProduct, Path=Name}"
            />
        </i:EventTrigger>
    </i:Interaction.Triggers>                           
</Button>
</DataTemplate>

希望这有帮助

The button element doesn't have the SelectedValue property.

You might want to use the Name propery instead or some other available property.

<DataTemplate>
<Button CommandParameter="ProductId" x:Name="btnProduct" Width="180" Height="40" Content="{Binding DisplayText}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Click">
            <n:ExecuteCommandAction Command="{Binding ShowSandwichPriceCommand}" 
                Parameter="{Binding ElementName=btnProduct, Path=Name}"
            />
        </i:EventTrigger>
    </i:Interaction.Triggers>                           
</Button>
</DataTemplate>

Hope this helps

情徒 2024-10-16 01:42:38

我能够让我的代码与此一起工作。谢谢。

<DataTemplate>
     <Button Command="{Binding DataContext.ShowSandwichPriceCommand, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ItemsControl}}}" 
          CommandParameter="{Binding Path=ProductId}" 
          Content="{Binding DisplayText}">                                        
     </Button>
</DataTemplate>

i was able to get my code working with this. thanks.

<DataTemplate>
     <Button Command="{Binding DataContext.ShowSandwichPriceCommand, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ItemsControl}}}" 
          CommandParameter="{Binding Path=ProductId}" 
          Content="{Binding DisplayText}">                                        
     </Button>
</DataTemplate>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文