MVVMCross を使用して最初のアプリケーションを作成しようとしています。また、これは私の最初のモバイル アプリケーションでもあります。
私の ViewModel には、(カスタム オブジェクトに格納された) 配列があります。その次元は固定されています (2 行、3 列)。
public Table SearchBox {get;set;}
6つのセルを6つの異なるテキストビューにバインドしたい(今のところ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)
しかし、どうすれば配列の 1 つのセルだけを変更できますか? この方法でも可能ですか?
コンバーターを作成する前に、viewModel で配列を 6 つの変数に変換することを考えていました。しかし、私はむしろ私の配列を使用したい...