Caliburn.Micro:不能关闭标签
在我的WPF应用Caliburn.Micro,我有一个TabControl。我希望能够根据需要关闭标签页。我找到了一种方法来写:Caliburn.Micro:不能关闭标签
但是当我尝试应用它,我得到一个错误:
No target found for method CloseItem.
这里是我的代码:
<TabControl x:Name="Items" >
<TabControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding DisplayName}" />
<Button Content="X"
cal:Message.Attach="CloseItem($dataContext)" />
</StackPanel>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
能否请你帮忙?
谢谢。
不完全一定是什么导致你确切的问题(我怀疑一个很老的教程加上千差万别的装配是问题),但我知道你可以得到它的工作。创建任何这样的旧公共方法并调用它。它会覆盖你在里面的内容,所以你可以把它命名为CloseItem。然后调用这个扩展方法并传入IConductor实例和IScreen实例。
public void CloseItem(object dataContext)
{
ScreenExtensions.CloseItem(this, dataContext);
}
做这将是另一种方式:
<Button Content="X" cal:Message.Attach="DeactivateItem($dataContext, 'true')" />
这样你不必创建一个额外的方法。
是的。这个问题似乎是当前Caliburn.Micro没有CloseItem定义为IConductor接口的一部分,因此,使用DeactivateItem和真实的传递给关闭是本教程情况下,一个好的解决方法。 – Eternal21 2016-04-18 16:47:14
在git的官方样片似乎使用相同的解决方案:https://github.com/paulcbetts/CaliburnMicro/blob/master/samples/Caliburn.Micro.SimpleMDI/Caliburn.Micro.SimpleMDI/ShellView.xaml – Eternal21 2016-04-19 11:57:05
太谢谢你了!它工作得很好。 – 2012-08-08 17:04:35
不知你是否知道如何回答,我有一些其他问题:http://stackoverflow.com/questions/11852418/componentones-flexgrid-background-color和http://stackoverflow.com/questions/11835186/c1flexgrid-width谢谢! – 2012-08-08 17:11:03
下载了C1试用版并看了一下 - 我为您发布了一个解决方案作为评论,然后将其移至答案。希望能帮助到你。 – erodewald 2012-08-08 18:01:08