c# - BindingContext 不访问 ViewModel 中的 getter
问题描述
我有一个 viewModel,它链接到一个带有 BindingContext 的视图。
BindingContext = viewModelTest;
在我的 ViewModel 中,我制作了一个自定义 getter,目的是获取测试项目列表。
public class viewModelTest: INotifyPropertyChanged
{
public List<string> partners
{
get
{
List<string> _partners = new List<string>() { "test1", "test2", "test3", "test3" };
return _partners;
}
}
public List<string> partnersTwo
{
get
{
List<string> _partners2 = new List<string>() { "test4", "test5", "test6", "test7" };
return _partners;
}
}
}
这是以下xaml:
<CarouselView>
<CarouselView.ItemsLayout>
<GridItemsLayout/>
</CarouselView.ItemsLayout>
<CarouselView.ItemTemplate>
<DataTemplate>
<Frame>
<Label Text="{Binding partners}"/>
<Label Text="{Binding partnersTwo}"/>
</Frame>
</DataTemplate>
</CarouselView.ItemTemplate>
</CarouselView>
从上面的代码中,我无法访问我的 getter{Binding partners}
仅当我将 BindingContext 更改为以下内容时才有可能:
BindingContext = viewModelTest.partners;
这自然是不受欢迎的,因为我希望能够将多个参数传递给我的视图,即 partnersTwo。
因此,如何从我的 ViewModelTest 在我的 xaml 文件中进行单独的绑定?
解决方案
试试这个 :
<CarouselView ItemSource="{Binding partners}">
<CarouselView.ItemsLayout>
<GridItemsLayout/>
</CarouselView.ItemsLayout>
<CarouselView.ItemTemplate>
<DataTemplate>
<Frame>
<Label Text="{Binding}"/>
</Frame>
</DataTemplate>
</CarouselView.ItemTemplate>
</CarouselView>
推荐阅读
- javascript - 将新节点添加到强制模拟导致仅转换到新节点
- c - c 同步写入到 stdout 和 stderr
- python - 引导 css 未在 django 模板中加载
- r - 修改矩阵变量的层数
- vue.js - 我在 asyncData 中处理非常慢的 Axios 请求
- java - 对 recyclerView 中的视图不起作用
- django-rest-framework - 如何创建那些嵌套对象
- c# - 列出分组或排序
- javascript - 单击按钮打开其他页面并向下滚动
- tabs - Symfony 3.4.6 - SonataAdmin - configureFromFields - 选项卡 - 在选项卡上添加图像