gpt4 book ai didi

c# - 如何读取 Xamarin 表单中的联系人

转载 作者:太空狗 更新时间:2023-10-29 13:13:03 26 4
gpt4 key购买 nike

我是 Xamarin 平台的初学者,正在尝试阅读 Xamarin 表单中的联系人。甚至尝试使用 Xamarin.Mobile,但它会给出很多错误。找到另外 1 个插件,即 Xamarin.contacts https://github.com/jamesmontemagno/Xamarin.Plugins/tree/master/Contacts但没有给出相关的例子。请为所有 3 个平台提供使用 Xamarin.contacts 的相关示例提前致谢:)

最佳答案

请记住 Xam.Plugin.Contacts 当前处于 alpha 版本。

这是我的实现。请注意,尽管有类名,但它并不是真正的 MVVM 模式。我尽可能地简化了代码以提高可读性。

MainPage.xaml

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Contacts"
x:Class="Contacts.MainPage">

<ContentPage.BindingContext>
<local:MainViewModel x:Name="ViewModel" />
</ContentPage.BindingContext>

<ListView ItemsSource="{ Binding Contacts }">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{ Binding DisplayName }"
Detail="{ Binding Nickname }" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>

MainViewModel.cs

public class MainViewModel
{
public ObservableCollection<Plugin.Contacts.Abstractions.Contact> Contacts { get; private set; }

public MainViewModel()
{
this.Contacts = new ObservableCollection<Plugin.Contacts.Abstractions.Contact>();
ReloadContacts();
}

public void ReloadContacts()
{
// Device may request user permission to get contacts access.
var hasPermission = CrossContacts.Current.RequestPermission()
.GetAwaiter()
.GetResult();

if (hasPermission)
{
this.Contacts.Clear();

List<Plugin.Contacts.Abstractions.Contact> contacts = null;
CrossContacts.Current.PreferContactAggregation = false;

if (CrossContacts.Current.Contacts == null)
{
return;
}

contacts = CrossContacts.Current.Contacts.ToList();
foreach (var contact in contacts)
{
this.Contacts.Add(contact);
}
}
}
}

希望这对您有所帮助。

关于c# - 如何读取 Xamarin 表单中的联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37960316/

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