【发布时间】:2020-08-12 13:58:42
【问题描述】:
我有一个 FilterUserControl 和 FilterViewModel 作为它的 DataContext。 在 FilterControl.xaml 中:
<Button x:Name="FilterButton">
<Button.ContextMenu PlacementTarget="{x:Reference FilterButton}" ItemsSource="{Binding FilterConditions}" Style="{StaticResource ButtonContextMenu}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<MenuItem Command="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu, Mode=FindAncestor}, Path=DataContext.ChangeFilterCondition}"
CommandParameter="{Binding}">
...
我在网上搜索并知道
CommandParameter="{Binding}"
与
相同CommandParameter="{Binding DataContext,RelativeSource={RelativeSource Self}}"
本来以为DataContext会是FilterViewModel,但调试后发现DataContext其实是“FilterConditions的每一项”
我终于在这里找到了证据ItemsSource vs DataContext in binding case
现在我想知道在 .xaml 中我们如何识别 DataContext 是什么?有哪些典型/常见案例?谢谢。
【问题讨论】:
标签: wpf data-binding datacontext