1

我已经构建了一个带有一些字段的 UserControl 和一个删除按钮。我想在列表框的 DataTemplate 中使用这个用户控件。

窗口.xaml:

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

在包含列表框的窗口的 ViewModel 中,我为用户控件的 DeleteButton 创建了一个 ICommand。

用户控件.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?

保罗

4

1 回答 1

1
<Button Content="Delete" 
        IsEnabled="{Binding CanUserDelete}" 
        Command="{Binding  Path=DataContext.DeleteCurrentUser, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}">
于 2013-08-07T09:52:21.577 回答