как отправить идентификатор нажатой кнопки в команду? - PullRequest
2 голосов
/ 28 декабря 2010

У меня есть кнопка внутри таблички данных.Когда кнопка нажата, я хочу отправить идентификатор кнопки моей команде.Фрагмент ниже, очевидно, не работает.Что я делаю не так?

<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>

Ответы [ 2 ]

0 голосов
/ 28 декабря 2010

я смог заставить мой код работать с этим.спасибо.

<DataTemplate>
     <Button Command="{Binding DataContext.ShowSandwichPriceCommand, RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type ItemsControl}}}" 
          CommandParameter="{Binding Path=ProductId}" 
          Content="{Binding DisplayText}">                                        
     </Button>
</DataTemplate>
0 голосов
/ 28 декабря 2010

Элемент button не имеет свойства 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>

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...