gpt4 book ai didi

winforms - 如何为子 UserControl 实现 IActivationForViewFetcher?

转载 作者:行者123 更新时间:2023-12-03 05:17:18 29 4
gpt4 key购买 nike

我刚刚将 ReactiveUI 添加到现有代码库中。当然,对于第一个控制,我尝试了它,但遇到了障碍。我将它与嵌入 TabControl 中的 UserControl 一起使用。代码看起来像这样:

public partial class TabPageControl : UserControl, IViewFor<TestViewModel>
{
public TabPageControl()
{
InitializeComponent();

ViewModel = new TestViewModel();

this.WhenActivated(dispose =>
{
dispose(this.Bind( ... ));
dispose(this.BindCommand( ... ));
});
}
}

当我运行应用程序时,收到以下错误消息:

Don't know how to detect when TabPageControl is activated/deactivated, you may need to implement IActivationForViewFetcher

那么,如何实现 IActivationForViewFetcher 呢?我不确定应该用 GetAffinityForView 做什么。我假设在 GetActivationForView 中我需要检查 UserControl 在 TabControl 中当前是否可见?

最佳答案

虽然我想了解如何实现 IActivationForViewFetcher 的方法(尤其是我识别控件位于 VisualTree 中的部分) - 问题的真正原因是我的主程序集没有适当的引用(控件位于类程序集中)。

我假设(因为我浏览了 ReactiveUI 源代码)ReactiveUI.Winforms.Registrations 需要由主程序集实例化 - 其中包括注册 ActivationForViewFetcher >.

顺便说一句,类库是用C#编写的,主要程序集是VB.NET。所以我不确定这是否导致了这个问题。

至少现在可以工作了!

关于winforms - 如何为子 UserControl 实现 IActivationForViewFetcher?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38216784/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com