gpt4 book ai didi

c# - 什么替换了 V3 Hot Tuna 中的 MvvmCross View 模型 PropertyChanged 事件?

转载 作者:搜寻专家 更新时间:2023-11-01 08:03:53 24 4
gpt4 key购买 nike

之前使用 V2,我使用 View 代码(见下文)中访问的事件处理程序将内容加载到 WebView 中,因为我找不到通过 xml 中的绑定(bind)加载数据的方法。

    this.ViewModel.PropertyChanged += new PropertyChangedEventHandler(EventHandlerFoo);

private void EventHandlerFoo(object sender, EventArgs e)
{
PropertyChangedEventArgs eventArgs = (PropertyChangedEventArgs) e;
if (eventArgs.PropertyName == "Foo")
{
WebView webView = item.FindViewById<WebView>(Resource.Id.fooWebView);
string body = item.FindViewById<TextView>(Resource.Id.fooUrl).Text;
webView.LoadData(body, "text/html", "utf-8");
}
}

这在 V3 中不再可用,我一直无法找到替代品。是否有隐藏在 Hot Tuna 深处的事件处理程序可供我使用,或者我是否必须实现自己的事件处理程序?

提前致谢

最佳答案

PropertyChanged 应该仍然存在 - 它是 INotifyPropertyChanged 的一部分,并在整个 MvvmCross 中使用。

我目前在移动网络上,但我猜你现在看不到它的原因是因为附加到你的 MvxActivityIMvxViewModel 没有不必继承 INotifyPropertyChanged - 参见 https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross/ViewModels/IMvxViewModel.cs

如果你想回到以前的功能,你有一个完整的强类型 ViewModel,你可以使用(例如)

 public new MyViewModel ViewModel
{
get { return base.ViewModel as MyViewModel; }
set { base.ViewModel = value; }
}

或者您可以直接将其转换为您的代码:

 ((MyViewModel)this.ViewModel).PropertyChanged += // ...

或者,如果您想对 webview 的 url 进行完全自定义绑定(bind),请参阅:Dynamic Binding UIWebView in MVVMCross (iOS 代码 - 但 Android 版本类似)

关于c# - 什么替换了 V3 Hot Tuna 中的 MvvmCross View 模型 PropertyChanged 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17049820/

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