Wpf 如何为DataTemplate元素设置不同的名称?

Wpf 如何为DataTemplate元素设置不同的名称?,wpf,mvvm,Wpf,Mvvm,我正在制作类似TictoGame的东西,试图使用MVVM,此时我遇到了一个问题。我不明白如何(如果可能的话)为不同的DataTempalte元素设置不同的名称(“确切地说是按钮”) 这是我的XAML代码。 而且,我试图在命令中把这个名字作为命令参数发送,但我总是得到“b1”的名字,因为他们都得到了这个名字,我需要他们都有不同的名字 如果可能的话,在这之后我如何将这些名称发送给命令 我将非常感谢您的帮助,请提前原谅可能出现的错误。元素名称,尤其是在模板中,没有多大帮助 <Button

我正在制作类似TictoGame的东西,试图使用MVVM,此时我遇到了一个问题。我不明白如何(如果可能的话)为不同的DataTempalte元素设置不同的名称(“确切地说是按钮”)


这是我的XAML代码。 而且,我试图在命令中把这个名字作为命令参数发送,但我总是得到“b1”的名字,因为他们都得到了这个名字,我需要他们都有不同的名字

如果可能的话,在这之后我如何将这些名称发送给命令


我将非常感谢您的帮助,请提前原谅可能出现的错误。

元素名称,尤其是在模板中,没有多大帮助

<Button Content="{Binding Content}"
        Name="b1"
        Style="{StaticResource ButtonsStyle}"
        CommandParameter="{Binding ElementName=b1, Path=Name}">

按钮绑定到此处的某个项目。为什么不将该项作为CommandParameter发送

<Button Content="{Binding Content}"
        Style="{StaticResource ButtonsStyle}"
        CommandParameter="{Binding Path=.}">


然后,在视图模型中,您可以强制转换为项目类型并获得对其所有属性的访问(
内容
,等等)

是的,我可以这样做,但这是否违反了MVVM,将按钮发送到视图模型?但仍然有办法为我的元素赋予不同的名称(b1、b2、b3…)@kotki,您正在视图模型中使用
按钮列表
。CommandParameter将是该列表的单个元素。如果您可以接受第一部分,则第二部分相同。关于名称:我没有尝试这样做,simple attemp说名称不支持像Bindings这样的MarkupExtension。我的按钮列表实际上不是System.Windows.Controls.button list,我只是创建了自己的类并将其命名为button,我的列表包含这些按钮!
<Button Content="{Binding Content}"
        Style="{StaticResource ButtonsStyle}"
        CommandParameter="{Binding Path=.}">