MVVM Caliburn.Micro学习记录

wpf中MVVM一直用的自己写的框架,最近试了试Caliburn.Micro。

Caliburn.Micro可以通过x:name来进行属性和事件绑定。

比如

     <Button x:Name="SayHello" Height="50" Content="Click me" />

viewmodel中只需要有个

        public void SayHello()
        {
            MessageBox.Show(string.Format("Hello {0}",Name));
        }

点击按钮就可以触发这个方法了。

然后我试了下在DataTemplate里的Button是不是也可以根据x:name来进行触发呢。结果是不行。

在之前用的MVVM框架里,需要Button binding 一个Command,还需要RelativeSource找到是哪个对象的Command。

后来发现Caliburn.Micro有个Message.Attach可以指定触发方法

     <DataTemplate x:Key="lsvitem">
            <Button  cal:Message.Attach="SayHello"  Height="30" Width="100" Content="{Binding}"/>
        </DataTemplate>

而且不需要指定RelativeSource。

 

刚看了一点,有时间再用用。

posted @ 2018-09-29 14:38  liuyong111  阅读(779)  评论(0编辑  收藏  举报