列表框中的WPF UserControl,将ICommand绑定到ViewModel

时间:2013-08-07 08:34:19

标签: wpf mvvm

我构建了一个带有一些字段的UserControl和一个删除按钮。 这个Usercontrol我想在Listbox的DataTemplate中使用。

Window.xaml:

<ListBox ItemsSource="{Binding Users}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <WrapPanel>
          <my:User x:Name="user1" />
       </WrapPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
</ListBox>

在包含Listbox的Window的ViewModel中,我为Usercontrol的DeleteButton创建了一个ICommand。

UserControl.xaml:

<UserControl x:Name="ucUsers" .....>      
    <TextBlock Text="{Binding LastSeen}"  Width="140"/>
    <Button Content="Delete" 
            IsEnabled="{Binding CanUserDelete}" 
            Command="{Binding ElementName=ucUsers, Path=DataContext.DeleteCurrentUser}">
    </Button>

为什么我无法访问ViewModel的DeleteCurrentUser?

保罗

1 个答案:

答案 0 :(得分:1)

<Button Content="Delete" 
        IsEnabled="{Binding CanUserDelete}" 
        Command="{Binding  Path=DataContext.DeleteCurrentUser, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}">