我使用.NET 2.0的标准作出Xamarin应用程式Android我有相当大的对象来处理。我想要在那里它们被添加到列表,然后用户可以从他们选择的话,我检索选定对象,然后打开一个更详细的视图他们一些看法。
什么方法是最好的呢?到目前为止,我有他们提供了在字符串拼接在一起几个属性列表视图,然后我分裂所选择的字符串,并搜索匹配的对象,但是这似乎真的容易断裂,因为我不知道该对象将具有什么样的价值,直到运行。
我想将它们添加到网格,因为这似乎是最好的,以明智的自定义布局,是有可能将这些值添加到网格和附加TapGestureRecognizer
到该行,并以某种方式存储和接收行的选择的对象?
如果你使用的ICommand你可以简单地实现TapGestureRecognizer。首先建立在这样的XAML文件在GridView:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Text = "{Binding @something}" GridRow = 0 GridColumn = 0/>
<Grid.GestureRecognizers>
<TapGestureRecognizer Command="{Binding TapCommand}"/>
</Grid.GestureRecognizers>
</Grid>
之后,在C#代码中设置这样的结合:
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.SetBinding (TapGestureRecognizer.CommandProperty, "TapCommand");
grid.GestureRecognizers.Add(tapGestureRecognizer);
那么你应该执行下面的命令:
public class TapViewModel : INotifyPropertyChanged
{
ICommand tapCommand;
public TapViewModel ()
{
tapCommand = new Command (OnTapped);
}
public ICommand TapCommand
{
get { return tapCommand; }
}
void OnTapped (object s)
{
//DO whatever you want
}
}