自从 MahApps.Metro 1.5.0 发生变化以来,Flyout 的基本元素已从ContentControl
to HeaderContentControl
。现在使用 Caliburn.Micro 和 MVVM 方法this https://stackoverflow.com/a/23206251/3414767建议不再起作用。
有没有其他人尝试以良好的 MVVM 方式解决这个问题?
虽然我自己没有尝试过,但自从新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 无法看到它,直到它位于树中,因此无法绑定它。
CM 源中的内容控制约定 https://github.com/Caliburn-Micro/Caliburn.Micro/blob/master/src/Caliburn.Micro.Platform/ConventionManager.cs#L320作为参考。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)