作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 MVVM 的 WPF 应用程序。
此代码来 self 的 ResourceDictionary.xaml
<DataTemplate x:Key="LogListTemplate">
<ListBox ItemsSource="{Binding LogList, UpdateSourceTrigger=PropertyChanged}" Style="{StaticResource HorizontalListBoxItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<Border Style="{StaticResource ErrorBorders}">
<StackPanel ToolTip="{Binding Details}" Width="250">
<TextBlock Text="{Binding Title}" />
<TextBlock Text="{Binding Details}" TextWrapping="Wrap" />
<Button Command="{Binding AddToTempDtdFileCommand}" CommandParameter="{Binding Details}" Content="Ignore" />
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
当我点击按钮时,命令不执行。测试证实这是因为我的 Button 位于 ListBox 中。
我的问题是我无法将按钮移出列表框,原因有两个。
1. Asthetics/UI (the button has belong with the information)
2. Binding to the LogList is done from within the ListBox.ItemTemplate
有人有什么建议吗?
最佳答案
如果命令在 ViewModel
中定义,您可以使用 RelativeSource
访问它。 RelativeSource
可以找到一个祖先(即您的 View
),因此您可以使用它的 DataContext
(您的 ViewModel
)。
<Button Command="{Binding DataContext.AddToTempDtdFileCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type YourViewClass}}}" CommandParameter="{Binding Details}" Content="Ignore" />
关于xaml - 如何将命令添加到 ListBox.ItemTemplate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929092/
我是一名优秀的程序员,十分优秀!