gpt4 book ai didi

c# - 在 Xamarin 跨平台应用程序中呈现带有 ObservableCollection 数据的 DisplayActionSheet

转载 作者:行者123 更新时间:2023-11-30 16:52:41 27 4
gpt4 key购买 nike

我正在 Xamarin 中构建一个新的 BLE 应用程序,使用 Monkey.Robotics来自 Xamarin 的组件。我正在使用这个 Heart Rate样本作为起点。但是,我想要一个仪表板 类型的主页,其中显示接收到的特征。然后我想要底部有一个“添加设备” 按钮,它会触发扫描和配对过程。

我目前有一个 ObservableCollection<T> 类设置为将找到的所有设备添加到 ListView 中。我真的很想将所有功能都放在一个页面上,这样我就不会将不同的状态复杂化,例如“之前已配对”、“想要配对新设备”和“从未配对过”。理想情况下,我想使用 DisplayActionSheet .

这是给定的例子

var actionButton1 = new Button { Text = "ActionSheet Simple" };
actionButton1.Clicked += async (sender, e) => {
var action = await DisplayActionSheet ("ActionSheet: Send to?", "Cancel", null, "Email", "Twitter", "Facebook");
Debug.WriteLine("Action: " + action); // writes the selected button label to the console
};

我是否可以使用通过 ObservableCollection 扫描的动态数据来填充它?

这是我目前的安排:

this.devices = new ObservableCollection<IDevice> ();
listView.ItemsSource = devices;

adapter.DeviceDiscovered += (object sender, DeviceDiscoveredEventArgs e) => {
Device.BeginInvokeOnMainThread(() => {
devices.Add (e.Device);
});
};

对于我如何实现这一点的建议将非常感激(以及它是否可能,或者是否有更好的方法?),同时仍然保持 DisplayActionSheet 的正确结构。

最佳答案

DisplayActionSheet 接受 params string[] list,所以下面的结构有效!

actionButton1.Clicked += async (sender, e) => {
var action = await DisplayActionSheet ("ActionSheet: Send to?", "Cancel", null, this.devices.Select(device => device.Name).ToArray());
// map action back to IDevice
// ...
};

关于c# - 在 Xamarin 跨平台应用程序中呈现带有 ObservableCollection 数据的 DisplayActionSheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32313996/

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