自MahApps.Metro 1.5.0发生变化以来,Flyout的基本元素已从ContentControl
更改为HeaderContentControl
。现在使用Caliburn.Micro和this建议的MVVM方法不再适用。
还有其他人试图以一种不错的MVVM方式解决这个问题吗?
答案 0 :(得分:0)
虽然我自己没有尝试过,但由于新的Flyout
控件现在基于HeaderedContentControl
,因此尝试执行此操作而不是之前的操作将是一个简单的逻辑选择,基于ContentControl
。看起来这种改变的好处是消除了几个依赖属性......
<controls:FlyoutsControl.ItemTemplate>
<DataTemplate>
<HeaderedContentControl cal:View.Model="{Binding}" />
</DataTemplate>
</controls:FlyoutsControl.ItemTemplate>
可能由此产生的另一件事是,您创建了一个Caliburn.micro约定以实际正确绑定到HeaderedContentControl
,这与ContentControl
变体的不同之处是,默认情况下已经在CM中。奇怪的是,这个HeaderedContentControl
从ContentControl
派生而来,理论上它应该是正确的。要考虑的另一件事是,这实际上也可能与Visual Tree有关,CM无法在树中看到它,因此无法绑定它。
答案 1 :(得分:0)
我已添加了on GitHub附近发布的作品。
通过设置ItemTemplate
的{{1}},似乎还有一些事情要发生。