当前位置:   article > 正文

WPF CommandBinding CommandParameter 用法_wpf textblock将当前控件的text传入commandparameter

wpf textblock将当前控件的text传入commandparameter

1.XAML部分

  1. <Window x:Class="WpfApp2022062901.MainWindow"
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5.         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6.         xmlns:local="clr-namespace:WpfApp2022062901"
  7.         mc:Ignorable="d"
  8.         Title="MainWindow" Height="450" Width="800">
  9.     <!--<Window.Resources>
  10.         <TextBlock x:Key="Res1" Text="海上生明月" />
  11.         <TextBlock x:Key="Res2" Text="海上生明月" />
  12.     </Window.Resources>
  13.     <StackPanel>
  14.         <Button Margin="5,5,5,0" Content="{StaticResource Res1}" />
  15.         <Button Margin="5,5,5,0" Content="{DynamicResource Res2}" />
  16.         <Button Margin="5,5,5,0" Content="Update" Click="UpdateRes_Click" />
  17.     </StackPanel>-->
  18.     <Grid>
  19.         <Grid.RowDefinitions>
  20.             <RowDefinition Height="24" />
  21.             <RowDefinition Height="4" />
  22.             <RowDefinition Height="24" />
  23.             <RowDefinition Height="4" />
  24.             <RowDefinition Height="24" />
  25.             <RowDefinition Height="4" />
  26.             <!--最后一个*是用于瓜分剩余空间部分,而对于其他高度部分则使用具体高度数字部分来写-->
  27.             <RowDefinition Height="*" />
  28.         </Grid.RowDefinitions>
  29.         <!--TextBlock其实就是一个文本显示框类似于Winform里面的label-->
  30.         <TextBlock  Grid.Row="0" Text="Name:" VerticalAlignment="Center" HorizontalAlignment="Left" />
  31.         <!--TextBox其实就是一个文本输入框-->
  32.         <TextBox Grid.Row="0" Name="NameTextBox" Margin="60,0,0,0" />
  33.         
  34.         <Button Grid.Row="2" Content="New Teacher" Command="New" CommandParameter="Teacher" />
  35.         <Button Grid.Row="4" Content="New Student" Command="New" CommandParameter="Student" />
  36.         
  37.         <ListBox Grid.Row="6" Name="NewItemListBox" Height="117" VerticalAlignment="Bottom" />
  38.     </Grid>
  39.     <Window.CommandBindings>
  40.         <!--Command对应事件名,方便对应的按钮绑定-->
  41.         <CommandBinding Command="New" CanExecute="CommandBinding_CanExecute"  Executed="CommandBinding_Executed" />
  42.     </Window.CommandBindings>
  43. </Window>


 

2.CS部分

  1.         private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
  2.         {
  3.             //用this.NameTextBox.Text来调出本界面下的控件元素属性部分
  4.             if (string.IsNullOrEmpty(this.NameTextBox.Text) == true) e.CanExecute = false;
  5.             else e.CanExecute = true;
  6.         }
  7.         /// <summary>
  8.         /// --对应业务部分执行完毕
  9.         /// </summary>
  10.         /// <param name="sender"></param>
  11.         /// <param name="e"></param>
  12.         private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
  13.         {
  14.             string name = this.NameTextBox.Text;
  15.             //按钮部分传入的参数部分可作为信息录入,也可作为对应参数判断项
  16.             if (e.Parameter.ToString() == "Teacher")
  17.             {
  18.                 this.NewItemListBox.Items.Add(string.Format("New Teacher: {0}, 学而不厌,诲人不倦。", name));
  19.             }
  20.             else if (e.Parameter.ToString() == "Student")
  21.             {
  22.                 this.NewItemListBox.Items.Add(string.Format("New Student: {0},好好学习,天天向上。", name));
  23.             }
  24.         }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/613358
推荐阅读
相关标签
  

闽ICP备14008679号