gpt4 book ai didi

c# - Windows Phone - 将列表绑定(bind)到 LongListSelector

转载 作者:可可西里 更新时间:2023-11-01 10:25:21 24 4
gpt4 key购买 nike

我是 Windows Phone 开发的新手,我一直在尝试将列表绑定(bind)到基础 Pivot 应用程序中包含的 LongListSelector,但没有成功。

这是主页的构造函数(发生绑定(bind)的地方):

public MainPage()
{
InitializeComponent();
List<int> testList = new List<int>();
testList.Add(0);
testList.Add(1);
testList.Add(2);
listDisplay.ItemsSource = testList;

// Set the data context of the listbox control to the sample data
DataContext = App.ViewModel;

// Sample code to localize the ApplicationBar
//BuildLocalizedApplicationBar();
}

这是 LongListSelector 的 XAML:

<vm:MainViewModel
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:PivotApp2.ViewModels"
SampleProperty="Sample Text Property Value">

<vm:MainViewModel.Items>
<vm:ItemViewModel x:Name="listModel" LineOne="{Binding Source}"/>
</vm:MainViewModel.Items>

</vm:MainViewModel>

我在这里做错了什么,我怎样才能让绑定(bind)起作用?

最佳答案

让我们从 View 模型开始,我们需要在这个类中进行数据绑定(bind):

class ViewModel
{
private ObservableCollection<string> _strings = new ObservableCollection<string>();

public ObservableCollection<string> Strings //It's our binding property
{
get
{
return _strings;
}
set
{
if (value==null)
{
throw new NullReferenceException();
}
_strings = value;
}
}
}

在此代码中,我们使用 ObservableCollectin,它表示一个动态数据集合,在添加、删除项目或刷新整个列表时提供通知。

然后我们需要添加一些数据:

public MainPage()
{
InitializeComponent();
ViewModel tempViewModel = new ViewModel();
var strings = new List<string> { "text1", "text2", "text3" };

tempViewModel.Strings = new ObservableCollection<string>(strings);

this.DataContext = tempViewModel;

}

最后我们需要将 View 模型与 View 进行通信:

<ListBox ItemsSource="{Binding Strings}"/>

关于c# - Windows Phone - 将列表绑定(bind)到 LongListSelector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19750703/

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