Tag: mvvmcross

MvvmCross 4和WPF SQLite插件

在MvvmCross 4.0.0中,社区SQLite插件已被新的SQLite-PCL插件取代(如果我没有记错的话)。 它在我的Android应用程序中运行良好,但当我尝试在WPF应用程序中使用它时,我遇到了问题。 当从nuget安装包时,没有默认的Bootstrap文件,因此Mvx运行时无法解析类MvxSqliteConnectionFactory 。 当我手动添加引导代码时,我得到如下错误: WindowsBase.dll中出现类型Cirrious.CrossCore.Exceptions.MvxException的第一次机会exception版本未知:时间26/10/2015 08:53:16.232 PM:错误:1.30exception:无法加载MvvmCross.Plugins类型的插件程序集。 Sqlite.PluginLoader 我认为运行时无法加载程序集,因为它通过在插件的名称后附加.Wpf后缀进行查找,因此它会查找程序集MvvmCross.Plugins.Sqlite.Wpf或类似的东西。 但是没有这样的库,在存储库中只有WindowsUWP版本。 我该怎么做才能解决问题,如何在WPF应用程序中使用此插件?

TextInputEditText:ArgumentNullException:MvxWeakEventSubscription中缺少源事件信息

突然,我的TextInputEditText的绑定开始失败,并且它与链接器有关。 如果我将链接器设置为“无”,则一切都按预期工作。 我使用的很多其他绑定仍然可以正常工作。 堆栈我得到: 视图绑定期间抛出的exceptionArgumentNullException:MvxWeakEventSubscription中缺少源事件信息参数名称:MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.Reflection.EventInfo sourceEventInfo, System.EventHandler sourceEventInfo 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.Reflection.EventInfo sourceEventInfo, System.EventHandler 1 [TEventArgs] targetEventHandler)[0x00017]在D:\ git \ MvvmCross \ MvvmCross \ Platform \ Platform \ WeakSubscription \ MvxWeakEventSubscription.cs:47 at MvvmCross.Platform.WeakSubscription.MvxWeakEventSubscription 2[TSource,TEventArgs]..ctor (Android.Widget.TextView source, System.String sourceEventName, System.EventHandler 1 [TEventArgs] targetEventHandler)[0x00000]位于MvvmCross.Platform的D:\ git \ MvvmCross \ MvvmCross \ Platform \ Platform \ […]

MvvmCross vnext:将插件与monodroid合并

我正在尝试将插件库项目合并为一个(例如,Location + PhoneCallTask​​)。 它与wp7完美配合,但我得到monodroid的未处理exception: 无法加载文件或程序集’Cirrious.MvvmCross.Plugins.Location.Droid.dll’ 当然,位置插件在’Cirrious.MvvmCross.Plugins.Droid.dll’(合并库)中引用。 有没有办法指向合并的库路径?

Xamarin:如何从iOS库项目加载图像

我有一个用MvvmCross设计的Xamarin项目。 有子项目: 核心(PCL) ViewModel(PCL) iOS(可执行文件) 如果我将图像添加到我的iOS项目(Resoureces / Images / test_image.png),那么我可以使用以下代码加载它: UIImage image = UIImage.FromBundle(“Images/test_icon.png”); 现在,我想使用一个新的子项目 控件(iOS库) 该库应该加载图像。 我在Controls(Resoureces / Images / test_image.png)中添加了一个图像 但我无法在Controls proj中加载此图像。 我的问题:如何从iOS库加载图像? public class MyButton : UIButton { public MyButton () : base() { Initialize (); } void Initialize() { // load image from bundle UIImage image = UIImage.FromBundle(“Images/test_icon.png”); // image is […]

MvvMCross与格式字符串绑定

如何为绑定添加格式,使用string.Format或类似的东西格式化绑定值? 我在其他线程中看到,您可以传递一个converterName。 是否存在针对此问题的转换器? 我在哪里可以看到MvvMCross v3的标准转换器列表? 我很快浏览了代码,但找不到任何东西。 我知道可能会发生信息丢失,这会破坏双向绑定,但我只想要这个来显示值。 我的具体案例是DateTime的绑定。 bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate); 我的愿望,例如: bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate).WithFormat(“hh:mm”);

TabLayout中的片段不绑定到viewmodel

我现在已经在这2天苦苦挣扎了,而且很简单。 由于某种原因,片段的绑定根本不会启动。 页面显示正确,选项卡可以正常工作。 我可以从选项卡1滑动到2,反之亦然。 TextView应该显示viewmodel中的一些文本。 当我调试两个片段视图模型的构造函数时,执行但LoginNotificationViewModel(LoginDescription和LastLoginRequestReceivedOn)上的属性永远不会触发。 我有一个包含TabLayout的视图,如下所示: tabview的代码: using Android.App; using Android.OS; using Android.Runtime; using Android.Support.Design.Widget; using Android.Support.V4.View; using Android.Support.V7.Widget; using Android.Views; using MvvmCross.Droid.Support.V4; using Notifier.Adapters; using Notifier.Android.Fragments; using Notifier.Classes; using Notifier.ViewModels; using System; using static MvvmCross.Droid.Support.V4.MvxCachingFragmentStatePagerAdapter; namespace Notifier.Android.Views { [Activity(Label = “HomeNotification”, Theme = “@style/Theme.NatuurNetwerk.Main”, NoHistory = true)] public class HomeNotificationView : MvxFragmentActivity { […]

MvvmCross Bindable MonoTouch.Dialog RadioElement

我正在尝试创建一个可绑定的RadioElement,用于MvvmCross中的MonoTouch.Dialog实现,并遵循https://github.com/MvvmCross/MvvmCross-Tutorials/tree/master/DialogExamples/DialogExamples.Touch/BindableElements中的模式(正如在MvvmCross Monotouch.Dialog中将数据绑定到表中所建议的那样 ,我创建了以下类: public class MvxBindableRadioElement : RadioElement, IBindableElement { public IMvxBindingContext BindingContext { get; set; } public MvxBindableRadioElement () { this.CreateBindingContext(); this.DelayBind(() => { var set = this.CreateBindingSet(); set.Bind().For(me => me.Caption).To(p => p.Id); set.Bind().For(me => me.Value).To(p => p.Value); set.Apply(); }); } protected override void Dispose(bool disposing) { if (disposing) { BindingContext.ClearAllBindings(); } base.Dispose(disposing); } […]

使用Mvvmcross进行UITableView分组的现代方法

我在Xamarin + mvvmcross中找到了几种(不是太多)不同的方法来分组细胞。 我已经尝试了几个,但是我遇到了一个问题:当我的真实服务返回更新的集合(稍有延迟)时,绑定并没有真正起作用,列表仍然是空的。 如果要运行虚假服务,它会立即返回结果,列表中会填充数据。 我尝试了几种方法,但没有人推动我前进,所以我不确定是否需要任何代码。 只是询问是否有关于分组的现代实现的样本/提示。 编辑:这是一个代码示例。 当前版本基于Stuart的答案: 无法绑定到mvvmcross中的ios表部分单元格,子单元格按预期绑定 视图模型: public override async void OnShow() { var calendarList = await DataService.GetListAsync(); CalendarList = new List(calendarList.OrderBy(a => a.Date)); } 因此,viewmodel获取模型列表,按日期排序并将其设置为CalendarList。 CalendarList只是一个抛出通知的List(new正在执行此工作)。 查看,初始化: public override void ViewDidLoad() { base.ViewDidLoad(); var source = new TableSource(CalendarList); this.AddBindings(new Dictionary { {source, “ItemsSource CalendarList” } }); CalendarList.Source = source; CalendarList.ReloadData(); […]

绑定到Text属性ios-unified不起作用

我将我的xamarin ios项目更新为统一API(64位支持)。 一切都按预期工作。 该项目建设和工作。 但我发现了一个问题。 绑定到UILabel.Text属性将不再起作用。 所有其他绑定仍然有效(例如,对于UIButton.Hidden属性)。 这是我的代码: // Create bindings var set = this.CreateBindingSet(); set.Bind(labelitem) // not working .For(t => t.Text) .To(v => v.MyStringValue); set.Bind(buttonitem) // working .For(b => b.Hidden) .To(v => v.MyboolValue) .WithConversion(new InverseBoolValueConverter()); set.Apply(); 我正在使用MvvmCross进行绑定。 Bevore统一更新一切正常。 首先,我尝试将链接器选项更改为“不链接”。 同样的问题。 任何人都可以解释我,发生了什么? 谢谢 编辑 调试我的项目时,我在输出中找到了一个信息: 弱目标在MvxUILabelTextTargetBinding中为空 – 跳过集

在MVVMCross中将参数从Main传递给Detail

我试图将所选项目从列表传递到详细信息视图,但是在DetailViewmodel myitem为null,即使它不在MyViewModel 。 MyViewModel.cs public virtual ICommand ItemSelected { get { return new MvxCommand(item =>{SelectedItem = item;}); } } public MyViewModel SelectedItem { get { return _selectedItem; } set { _selectedItem = value; // myItem is NOT null here!!! ShowViewModel(new { date = Date, myItem = _selectedItem }); RaisePropertyChanged(() => SelectedItem); } } MyDetailViewModel.cs public […]