c# - Xamarin Forms - 创建具有复杂数据绑定的自定义条目列 sfdatagrid
问题描述
我目前正在从事一个项目,我试图以编程方式生成同步融合数据网格列并为每一列分配一个自定义模板,这只是一个可以编辑的输入字段。我已经能够创建所有字段。每个都没有附加到主要网络我还需要将初始值绑定到它,我已经尝试使用简单的标签并且它似乎有效。但是,当我尝试运行它时,我得到了错误:
绑定:在“APPNAME.ViewModel”上找不到“距离”属性,目标属性:“Syncfusion.SfDataGrid.XForms.Renderers.SfEntry.Text。
它仍然显示单元格,但没有正确显示。
内容页:
public MainPage()
{
InitializeComponent();
dataGridView.FrozenColumnsCount = 1;
dataGridView.ItemsSource = viewModel.Objects;
dataGridView.BindingContext = viewModel.Objects;
for (int i = 0; i < numberOfDatapoints; i++)
{
var newColumn = new GridTemplateColumn()
{
HeaderText = $"Distance {i + 1}",
MappingName = $"Distances[{i}].Distance",
Width = 100
};
Xamarin.Forms.DataTemplate templateColumn = new Xamarin.Forms.DataTemplate(() =>
{
var entry = new SfEntry()
{
HorizontalTextAlignment = Xamarin.Forms.TextAlignment.Center,
VerticalTextAlignment = Xamarin.Forms.TextAlignment.Center,
BindingContext = viewModel
};
entry.SetBinding(SfEntry.TextProperty, $"Distances[{i}].Distance");
return entry;
});
newColumn.CellTemplate = templateColumn;
dataGridView.Columns.Add(newColumn);
}
}
视图模型只包含一个可观察的“BindingObjectTest”集合,然后填充该集合。
所以数据结构是:viewmodel -> Objects (ObsLst [BindObjTst]) -> Distances (ObsLst[ObservableDistances]) -> Distance(十进制)
正如我所说,该解决方案适用于标签,但我不明白为什么它没有正确绑定到条目。(我怀疑这可能与 Sf.Entry.TextProperty 与 SfEntry 不同有关。
如果您需要更多信息,请询问:) 提前感谢您的所有帮助。
解决方案
由于您已将绑定初始化为视图模型类以用于单元格模板中的条目,这不是正确的方法。因此,删除条目的绑定以实现您的要求。有关更多详细信息,请参阅代码片段和附加示例。
代码片段:
GridTemplateColumn templateColumn = new GridTemplateColumn () { HeaderText = $"Distances{0}", MappingName = "Distances[0].Dist", Width = 50, }; var dataTemplate = new DataTemplate(() => { var entry = new SfEntry() { HorizontalTextAlignment = Xamarin.Forms.TextAlignment.Center, VerticalTextAlignment = Xamarin.Forms.TextAlignment.Center, }; entry.SetBinding(SfEntry.TextProperty, "距离[0].Dist"); 返回条目; }); templateColumn.CellTemplate = 数据模板;this.dataGrid.Columns.Add(templateColumn);
问候, Karthik Raja
推荐阅读
- asp.net - 带 ID 的 Bootstrap 4 模态 div(来自 C# 模型的 Guid)
- python - 从 CSV 导入格式错误转换日期时间
- database - 包含来自同一记录的值的下拉列表
- php - 通过自定义字段值扩展 Woocommerce 搜索
- ios - 缩放表格视图
- xamarin - 从 Git 存储库克隆 Xamarin 文档后,如何在本地浏览它?
- swagger - Spring data rest 在 mongo 存储库中为 POST 方法在招摇中将 id 显示为路径变量?
- amazon-redshift - 为什么 Redshift UNLOAD 查询无法正确引用列?
- ios - iOS 应用程序在设备 Unity 中打开时崩溃?
- php - 单击行中的其他单元格时,如何从单元格中获取值?