我正在尝试使用 MVVMCross 制作我的第一个应用程序。这也是我的第一个移动应用程序。
在我的 ViewModel 中,我有一个数组(存储在自定义对象中)。它的尺寸是固定的(2 行,3 列)。
public Table SearchBox {get;set;}
我想将我的六个单元格绑定到六个不同的文本视图(现在我的目标是 Android)我写了一个自定义转换器:
protected override string Convert(Table value, Type targetType, object parameter, CultureInfo culture)
{
string rowcol=parameter.ToString();
int row =System.Convert.ToInt32( rowcol.Substring (0, 1));
int col= System.Convert.ToInt32(rowcol.Substring(1,1));
return value.CellValue(row,col);
}
对于每个 textview ,此绑定都可以正常工作:
local:MvxBind="Text SearchBox,Converter=Table,ConverterParameter='00'"
到目前为止,一切都很好,我为自己感到骄傲。有没有更好的办法 ?
下一步是修改 textview 值(使用拖放,但那是另一天)。ConvertBack 的原型是:
protected override Table ConvertBack(string value, Type targetType, object parameter, CultureInfo culture)
但是我怎样才能只修改数组的一个单元格呢?这种方式甚至可能吗?
在创建我的转换器之前,我正在考虑将我的数组转换为 viewModel 中的六个变量,这对于双向绑定来说是显而易见的。但我宁愿使用我的数组...