我已经构建了一个带有一些字段的 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?
保罗
最佳答案
<Button Content="Delete"
IsEnabled="{Binding CanUserDelete}"
Command="{Binding Path=DataContext.DeleteCurrentUser, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}">
关于列表框中的 WPF UserControl,将 ICommand 绑定(bind)到 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18098494/