将函数绑定到xaml中的MouseDown事件?

 染伊沐2010 发布于 2023-02-13 10:38

我正在努力学习WPF和C#编程,但我正在努力理解绑定等.

我被困在"绑定"函数或命令到我的网格中的XAML对象.


代码MouseDown="{Binding Path=ChessPieces[0].Move()}"不起作用,但显示我试图实现的内容

在我的viewmodel中,我已经定义了一个列表,我已经填充了我不同的棋子的实例,然后我计划将每个图像绑定到该列表中的实例.

我试图做的是绑定MouseDown函数此刻,似乎如果我将该函数放在Mainwindow.xaml.cs文件中,它可以访问它.但我希望它能够从模型中访问它

Mainwindow.xaml.cs

namespace TheGame.Views
{
    public partial class MainWindow : Window   
    {
        public MainWindow()
        {
            InitializeComponent();
            this.DataContext = new ChessBoardViewModel();
        }

    }
}

BlkRook对象定义了行,列,名称和函数移动.

错误信息:

"'TheGame.Views.MainWindow'不包含'Move'的定义,也没有扩展方法'Move'接受类型为'TheGame.Views.MainWindow'的第一个参数'(你是否缺少using指令或程序集)参考?)"

那么..如何将Model-object中定义的函数绑定到XAML对象?

谢谢

/马丁

1 个回答
  • 您无法绑定到方法.您正在使用MVVM,因此我建议您将附加属性与命令结合使用.您还可以使用MouseBinding类:http://msdn.microsoft.com/en-us/library/system.windows.input.mousebinding( v=vs.110) .aspx.这里解释了命令绑定:http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/

    <Button>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="MouseDown" >
                <i:InvokeCommandAction Command="{Binding MouseDownCommand}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </Button>
    

    2023-02-13 10:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有