StackPanel Binding

本文介绍了一个使用WPF实现的菜单交互案例,通过XAML定义了带有交互触发器的菜单项,并在ViewModel中使用DelegateCommand进行响应。文章展示了如何通过Blend的System.Windows.Interactivity.dll文件设置<i:Interaction>触发器来调用对应的命令。

注意<i:Interaction>需要使用Blend的System.Windows.Interactivity.dll文件。

Xaml文件:

<StackPanel Width="200" Height="auto" MaxHeight="400" Grid.Row="1">
  <ItemsControl ItemsSource="{Binding MenuSet}">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <StackPanel HorizontalAlignment="Center" IsItemsHost="True"></StackPanel>
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding Name}" Name="txtb">
        <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseLeftButtonDown">
    

          <i:InvokeCommandAction CommandParameter="{Binding ElementName=txtb}"
          Command="{Binding Path=DataContext.ModifyCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type            StackPanel}}}">

        </i:InvokeCommandAction>

        </i:EventTrigger>
        </i:Interaction.Triggers>
      </TextBlock>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
 </ItemsControl>
</StackPanel>

 

 

ViewModel: 注意DelegateCommand需要Prism中的Microsoft.Practices.Prism.dll。

Model:

转载于:https://www.cnblogs.com/gnsds/p/3632259.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值