Tag: xamarin

使用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(); […]

如何使用xamrian表单提示用户进行地理定位

您好我正在使用xamrian表单应用程序中的应用程序,需要请求gelocation权限,如果授权它需要从设备获取地理位置数据,然后将地理位置坐标放入forecast.io URL我正在使用Geolocator插件詹姆斯·蒙特马尼奥以及詹姆斯·蒙特马尼奥的PermissionsPlugin,当我打开雷达页面时,屏幕保持白色,它永远不会要求我的许可,这是我的xamrain表单代码: using AppName.Data; using Xamarin.Forms; using Plugin.Geolocator; using System.Diagnostics; using System.Threading.Tasks; using Plugin.Permissions; using Plugin.Permissions.Abstractions; using System; namespace AppName.Radar { public partial class RadarHome : ContentPage { public RadarHome() { InitializeComponent(); } async void locator() { try { var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location); if (status != PermissionStatus.Granted) { if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location)) { await DisplayAlert(“Need […]

如何在webview中下载文件..?

我的应用程序将打开浏览器下载文件,但我希望它在webview中下载(不要打开浏览器下载)。 我不擅长app,请尽可能给我完整的代码。 using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Android.OS; using Android.Webkit; using System.Net; namespace REC { [Activity(Label = “ABC”, MainLauncher = true, Icon = “@drawable/rec512”, ConfigurationChanges = Android.Content.PM.ConfigChanges.Orientation | Android.Content.PM.ConfigChanges.ScreenSize)] public class MainActivity : Activity { private WebView mWebView; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set […]

将Base64字符串转换为位图或图像Xamarin或Android

我正在尝试将Base64字符串转换为图像并使用相同的图像设置ImageView。 我知道如何在java中完成它,但我在C#中遇到了麻烦。 任何人都知道如何在C#中完成它? 我试过的一些代码; public Image Base64ToImage(string base64String) { // Convert base 64 string to byte[] byte[] imageBytes = Convert.FromBase64String(base64String); // Convert byte[] to Image using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length)) { Image image = Image.FromStream(ms, true); return image; } }

绑定到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 […]

Xamarin.Forms:如何从Web API数据填充饼图?

今天是个好日子。 我正在创建一个Xamarin.Forms便携式应用程序。 我目前正在编写一个包含静态数据的 PieChart(OxyPlot)。 我想要做的是在我拥有的每个Pie Slice中都有一个动态数据 。 意思是,数据应来自我的数据库。 我已经能够从我的数据库中检索数据并将其显示为我正在使用Web Api创建的移动应用程序中的List ,如下所示: ClientListPage.xaml ClientListPage.xaml.cs using Newtonsoft.Json; using OxyPlot; using OxyPlot.Series; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; using System.Windows.Input; using Xamarin.Forms; using XamarinFormsDemo.Models; using XamarinFormsDemo.ViewModels; namespace XamarinFormsDemo.Views { public partial class ClientListPage : ContentPage { CustomerVM viewModel; public ClientListPage() […]

ListView不会取消选择

我正在使用ListView进行Xamarin.Forms项目。 ListView的XAML是 而C#是 public void ItemTapped(object sender, ItemTappedEventArgs e) { var Selected = e.Item as Classes.NavigationItem; //Handle clicked } ((ListView)sender).SelectedItem = null; } private void ItemSelected(object sender, SelectedItemChangedEventArgs e) { ((ListView)sender).SelectedItem = null; } 我的自定义渲染器是 Android(自定义列表视图): public class NavigationListViewAndroid : ListViewRenderer { #pragma warning disable CS0618 // Type or member is obsolete public NavigationListViewAndroid() { […]

Visual Studio中缺少Nuget包

我一直在使用xamarin studio,当我从mvvmcross下载一个示例项目时它工作正常。 它可以完美地编译和部署设备。 但是当我在visual studio中打开项目时,由于某些原因,有很多缺少的包。 有办法吗? 我在Visual Studio 2013中使用Nuget 2.8 当我按如下方式打开Nuget时,有一个按钮可以恢复丢失的包。 我点击了它。 然后它试图下载丢失的包,然后它意识到存在以下依赖关系: 然后我试图手动下载依赖,如下所示,但它显示已经下载的包但我仍然看到解决方案中缺少的包,没有任何影响。 因此,我收到如下数百个错误: 当我看一下丢失包裹的属性时,我看到如下

Xamarin.Forms HTTPS和自签名证书问题

我正在使用Xamarin.Forms,我的优先级是UWP。 我试图通过System.Net.Http.HttpClient发布一个post请求,我的代码看起来像这样 public async Task Login(User user) { HttpClient client = await GetClient(); var response = await client.PostAsync(Url, new StringContent(JsonConvert.SerializeObject(user), Encoding.UTF8, “application/json”)); var mobileResult = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject(mobileResult); return result; } 当我提出请求时,我收到此错误 System.Net.Http.HttpRequestException:发送请求时发生错误。 —> System.Runtime.InteropServices.COMException:找不到与此错误代码关联的文本。 证书颁发机构无效或不正确 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)在System.Net.Http.HttpHandlerToFilter.d__4.MoveNext()—堆栈跟踪结束抛出exception的前一个位置— System.Runtime.Compiler服务上的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务),System.Net.Http.HttpClientHandler.d__86.MoveNext的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) )—内部exception堆栈跟踪的结束—在System.Net.Http.HttpClientHandler.d__86.MoveNext()—从抛出exception的先前位置的堆栈跟踪结束—在System.Runtime.CompilerServices System.Net.Http.HttpClient.d__58.MoveNext()的System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中的.TaskAwaiter.ThrowForNonSuccess(任务任务)—来自先前位置的堆栈跟踪结束 rown —位于System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务), 1.GetResult() at SampleApp.Services.LoginService.d__2.MoveNext() — End of stack trace from previous […]