gpt4 book ai didi

c# - 如何在 Xamarin Forms 中创建自定义可绑定(bind) View ?

转载 作者:行者123 更新时间:2023-11-30 23:23:03 26 4
gpt4 key购买 nike

说,我想要一个 ObservableCollection<SomeModel>与之对应的是水平可滚动的按钮列表。我该怎么做?

目前,我正在使用以下代码,但问题是它不适合 MVVM 模型,因为首先,它缺乏绑定(bind)。

foreach (var item in result.Items)
{
var button = new Button
{
FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Button)),
HeightRequest = 50,
WidthRequest = 80,
Text = item.Id,
};

_itemButtons.Add(button);

var frame = new Frame
{
Content = button,
Padding = new Thickness(0, 0, 0, 10)
};

button.Clicked += OnItemClicked;
Device.BeginInvokeOnMainThread(() => buttonsStack.Children.Add(frame));
}

如果 list 应该是垂直的,我当然会使用 ListView,但因为它不应该(而且没有“正常”的方式让 ListView 水平,旋转它然后旋转其中的每个项目感觉不对) ,我不能。

我想让几个按钮排成一排(一开始我显然不知道它们的编号),如下所示:

enter image description here

当用户点击按钮时,其余按钮的不透明度设置为 0.3,并且它们变得不那么明显,从而产生点击的按钮是某种选定选项的错觉。

最佳答案

在我看来,只看到您发布的代码,您所做的似乎非常好,因为您的代码隐藏页面只是与您的 Button 集合相关的 UI 元素困惑。因此没有理由将 UI 元素的集合移动到 ViewModel。

我建议,无论何时您想添加一个按钮,都可以通过在 buttonStack 子级上调用 Add() 来完全按照您的操作进行删除一个 Button,获取对它的引用并在 buttonStack 子级上调用 Remove()

此外,如果您想要水平滚动操作,只需将 buttonStack 放入 ScrollView 并将 ScrollView.Orientation 设置为 ScrollOrientation .水平.

如果我错过了您问题的重点,请务必告诉我。

关于c# - 如何在 Xamarin Forms 中创建自定义可绑定(bind) View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38544889/

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