c# - 绑定带有标签代码的列表元素
问题描述
我正在尝试将结构列表与动态创建的标签绑定。
结构代码:
public struct PrinterToGridBinds
{
public string extPrinterName { get; set; }
public string extIcecreamType { get; set; }
public string extBatchNumber { get; set; }
public string extBeginingDate { get; set; }
public string extPrinterState { get; set; }
public string extBatchCounter { get; set; }
public string extDIOCounter { get; set; }
public PrinterToGridBinds(string extPrinterName, string extIcecreamType, string extBatchNumber, string extBeginingDate,
string extPrinterState, string extBatchCounter, string extDIOCounter)
{
this.extPrinterName = extPrinterName;
this.extIcecreamType = extIcecreamType;
this.extBatchNumber = extBatchNumber;
this.extBeginingDate = extBeginingDate;
this.extPrinterState = extPrinterState;
this.extBatchCounter = extBatchCounter;
this.extDIOCounter = extDIOCounter;
}
}
public List<PrinterToGridBinds> lst_PrinterToGridBindings = new List<PrinterToGridBinds>();
初始化结构列表
private void PrinterToGridBindingInit()
{
for (int i = 0; i < PrinterNumber; i++)
{
lst_PrinterToGridBindings.Add(new PrinterToGridBinds("Num " + (i + 1).ToString(), "-", "-", "-", "-", "-", "-"));
}
}
并尝试将其与动态创建的标签绑定。下面的代码:
for (int i = 0; i < 8; i++)
{
Label lbl_PrinterName = new Label();
lbl_PrinterName.Name = "Name_" + i.ToString();
Binding lbl_Binding = new Binding {Path = new PropertyPath(lst_PrinterToGridBindings[i].extPrinterName), Mode = BindingMode.OneWay };
lbl_PrinterName.SetBinding(Label.ContentProperty, lbl_Binding);
Grid.SetRow(lbl_PrinterName, i + 2);
Grid.SetColumn(lbl_PrinterName, 3);
grd_WorkArea.Children.Add(lbl_PrinterName);
}
程序运行后我看不到任何结果。从另一边,如果我定义财产
public string PropName1 { get; set; } = "PropTest";
并将此属性添加到绑定中,如下所示:
Binding lbl_Binding = new Binding {Path = new PropertyPath("PropName1"), Mode = BindingMode.OneWay };
一切都像魅力一样!我的错误在哪里?如何动态绑定结构数据和标签?
解决方案
似乎,对于您的工作示例(使用PropName
),您在属性路径中定义了属性名称,但对于打印机,您定义了一个属性值lst_PrinterToGridBindings[i].extPrinterName
。看看Binding.Path属性。您还应该指定Source
for 绑定
推荐阅读
- javascript - React Native App:时间格式转换:从 as (2018-10-09T06:20:33.628Z) 到 Epoch 时间戳
- python - 我需要创建第三方烧瓶休息 api,其中应该保护 api 免受外部访问,而无需用户登录凭据
- javascript - JS减少返回[object Object]
- jsf - f:ajax 标签执行整个表单而不是给定元素
- ios - 如何将具有关系的核心数据导出到 CSV
- react-native - 在 React-Native 当 Android 设备通过 USB 电缆断开连接时。表现出奇怪的行为
- android - OKHTTP 网络套接字库不工作?
- xml - 如何使用 VBScript 通过 ID 获取 XML 文件中的值?
- php - Symfony 2.1.11 图像数据响应在响应正文的开头添加了额外的字节
- php - 在 Symfony SwiftMailer 中翻译电子邮件的最佳实践