前台代码

 <!--  通过传递ElementName  -->
<Button
x:Name="btn1"
Width="200"
Height="27"
Command="{Binding Command}"
CommandParameter="{Binding ElementName=btn1}" /> <!-- 通过传递自身 -->
<Button
Grid.Row="1"
Width="200"
Height="27"
Command="{Binding Command2}"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=Self}}" /> <!-- 通过传递Width Width是只读的,这种方法行不通,哪怕设置双向也不行,-->
<Button
Grid.Row="2"
Width="200"
Height="27"
Command="{Binding Command3}"
CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Width,UpdateSourceTrigger=PropertyChanged}" />

后台代码

 private DelegateCommand<Button> _Command;
public DelegateCommand<Button> Command =>
_Command ?? (_Command = new DelegateCommand<Button>(ExecuteCommand, CanExecuteCommand)); private void ExecuteCommand(object parameter)
{
var btn = parameter as Button;
btn.Width = 500;
} private DelegateCommand<Button> _Command2;
public DelegateCommand<Button> Command2 =>
_Command2 ?? (_Command2 = new DelegateCommand<Button>(ExecuteCommand2)); private void ExecuteCommand2(object parameter)
{
var btn = parameter as Button;
btn.Width = 500;
} private DelegateCommand<double> _Command3;
public DelegateCommand<double> Command3 =>
_Command3 ?? (_Command3 = new DelegateCommand<double>(ExecuteCommand3)); private void ExecuteCommand3(double parameter)
{
Application.Current.Dispatcher.Invoke(() =>
{
var width=parameter;
width = 500;
});
} private bool CanExecuteCommand(object parameter)
{
return true;
}

第三种报错,因为Width是只读的,你可以传递一个实体,然后修改实体的属性,但是传递的参数本身应该是只读的,这是我个人的理解,如果能直接传递宽度实现宽度改变的,希望留下代码,一起交流

WPF设置传参、点击按钮改变长度的更多相关文章

  1. 怎么用js设置a标签点击链接改变当前颜色

    怎么用js设置a标签点击链接改变当前颜色 20 例如:多个a标签为白色,当点击其中一个a标签时改变那一个a标签的字体颜色为黄色,并且跳转到对应链接,当点击下一个a标签链接时,下一个为黄色,之前一个恢复 ...

  2. vue踩坑之路--点击按钮改变div样式

    有时候,我们在做项目的时候,想通过某个按钮来改变某个div样式,那么可以通过以下代码实现: <!DOCTYPE html> <html> <head> <me ...

  3. iOS 之点击按钮改变状态的图片

    .h  文件中 @property (strong, nonatomic) IBOutletUIButton *publishBtton; @property (strong, nonatomic) ...

  4. 二、JavaScript之点击按钮改变HTML样式 (CSS)

    一.代码如下 二.点击前 三.点击后 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" c ...

  5. 点击按钮改变标签内容(采用lambda函数方式)

    from Tkinter import* window=Tk() counter=IntVar() counter.set(0) def click(variable,value): variable ...

  6. 点击按钮改变div背景色,再次点击恢复 -- 原生JS

    如果对您有帮助,记得点个赞哦!

  7. 【WPF】CommandParameter解决多传参问题

    方法一:传参按钮控件自身绑定的ItemSource 用WAF框架实现MVVM,按钮的点击事件都要通过Command来传递到这个View对应的ViewModel上,再通过ViewModel传递到上层的C ...

  8. Android基础TOP5_4:点击按钮更换样式,设置透明度

    在res/drawable创建两个样式 点击前/点击后 round: <?xml version="1.0" encoding="utf-8"?> ...

  9. Vue之路由跳转 传参 aixos 和cookie

    一.路由跳转 1.1 项目的初始化 vue create m-proj   >>>创建vue项目 精简vue项目的 views 视图   About(基本是删除的) Home.(可以 ...

  10. react中的传参方式

    react是一个SPA模式,即组件嵌套租,在一个单页面的应用中组件间的数值传递是必不可少的,主要的传参方式大致有一下几种: 1,在挂载的地方给组件传参 ReactDOM.rander(<a na ...

随机推荐

  1. JS leetcode 翻转字符串里的单词 题解分析

    壹 ❀ 引 今天来做一道难度中等,但实际难度并不是很高的题目,题目来源leetcode151. 翻转字符串里的单词,题目描述如下: 给定一个字符串,逐个翻转字符串中的每个单词. 示例 1: 输入: & ...

  2. vue3的宏到底是什么东西?

    前言 从vue3开始vue引入了宏,比如defineProps.defineEmits等.我们每天写vue代码时都会使用到这些宏,但是你有没有思考过vue中的宏到底是什么?为什么这些宏不需要手动从vu ...

  3. Shiro 框架的MD5加密算法实现原理

    直接上代码:该代码可以直接用于项目中做MD5加密,加盐加密,多层散列加密 import java.io.UnsupportedEncodingException; import java.securi ...

  4. junit使用mock objects进行单元测试

    上一篇我介绍了使用stub进行单元测试.那么mock objects和stub有何区别?什么情况下使用mock objects呢? 下面摘自junit in action书中的解释: mock obj ...

  5. node版本管理工具nvm的安装及使用

    一.什么是nvm nvm是一个node版本管理工具. 由于不同项目依赖的node版本可能不同,所以在维护多个项目时通常需要使用不同的node版本,这时候用nvm来切换不同的node版本就很方便. 官方 ...

  6. python字典操作的大O效率

  7. 多线程系列(十) -ReadWriteLock用法详解

    一.摘要 在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码. 但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许 ...

  8. github.com/mitchellh/mapstructure 教程

    官网链接: github.com/mitchellh/mapstructure 本文只是简单的记录下 mapstructure 库的简单使用,想更加详细的学习,点击 Godoc 学习吧. 文中内容基本 ...

  9. 【Azure 应用服务】Storage Queue触发Azure Function时报错 The input is not a valid Base-64 string

    问题描述 创建一个PowerShell脚本的Azure Function,触发方式为 Storage Queue.但执行函数结果一直失败 (Failed). 错误消息为: Executed 'Func ...

  10. Netty笔记(1) - Netty概述 和 框架结构

    概述 基于NIO 的框架,目的是简化开发NIO的工作量 异步的 ,基于事件驱动的网络应用程序框架,用以快速开发高性能.高可靠性的网络 IO 程序 Netty 是目前最流行的 NIO 框架,Netty ...