开发者

WPF Commands Buttons ListBoxItems

I Have a listbox defined like below :

<ListBox x:Name="lstMedias" ItemsSource="{Binding Medias}" Width="Auto" Height="Auto">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Button Content="{Binding Name}" Tag="{Binding Name}" Click="Button_Click" Command="{Binding Path=LoadSimpleMoviePopupCommand}">
                <Button.Resources>
                    <Converters:LoadMovieMultiConverter x:Key="LoadMovieMultiConverter" />
                </Button.Resources>                                    
     开发者_运维问答           <Button.CommandParameter>
                    <MultiBinding Converter="{StaticResource LoadMovieMultiConverter}">
                        <MultiBinding.Bindings>
                            <Binding ElementName="DragDropCanvas" />
                            <Binding Path="Tag" RelativeSource="{RelativeSource Self}" />
                        </MultiBinding.Bindings>
                     </MultiBinding>
                 </Button.CommandParameter>
              </Button>
          </DataTemplate>
      </ListBox.ItemTemplate>
</ListBox>

When Trying to call command LoadSimpleMoviePopupCommand, command is not called, but when calling click event, event is raised.

Do You have an idea why ? It is a normal behavior ? Do we have to trick like ListBoxItem doubleclick ?


Probably because the binding failed. Check the output window of VS and see if there are any binding errors. I suspect the LoadSimpleMoviePopupCommand property is not on your data item class (ie. your Media class).


had the same problem, try this

<Button Command="{Binding DataContext.YourCommand,RelativeSource={RelativeSource AncestorType={x:Type ListBox}}}"

it's quite normal, he can't find your command binding inside the listbox because you set something like

<DataTemplate DataType ...

in that listbox so he'll be looking for that binding inside the datatype and not the viewmodel (I assume :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜