MVVMパターンを使用するxamarin.formsアプリケーションのListViewに問題があります。あなたが私を助けてくれることを願います。あなたが見ることができるようにボタンコマンドからリストビューを取得するxamarin.forms MVVM
private ICommand _deleteVolumeCommand;
public ICommand DeleteVolumeCommand
{
get
{
{
if (_deleteVolumeCommand == null)
{
_deleteVolumeCommand = new Command((e) =>
{
var item = (e as Volume);
int index = MissingVolumeListView.Items.IndexOf(item);
});
}
return _deleteVolumeCommand;
}
}
}
、私がしたいことは、私は私のListViewコントロールのボタンをクリックすると、項目を選択し得ることです:
<ListView x:Name="MissingVolumeListView"
ItemsSource="{Binding Volumes}"
SelectedItem ="{Binding Id}"
>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid x:Name="Item">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="40"/>
</Grid.ColumnDefinitions>
<Label Text="{Binding Name}" Style="{StaticResource UsualLabelTemplate}"/>
<Button Grid.Column="1" x:Name="DeleteButton" Text ="-" BindingContext="{Binding Source={x:Reference MissingVolumeListView}, Path=BindingContext}" Command="{Binding DeleteVolumeCommand}" CommandParameter="{Binding Source={x:Reference Item}, Path=BindingContext}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
は、その後、私は私のViewModelにDeleteVolumeCommandを得る: はここに私のXAMLです。その後、私はすべての
x:Nameの使用法はMVVMパターンではありません。これを回避してください。 deleteコマンドはあなたのlistitemのビューモデル上にあります。正しいのですか? viewmodelsでリストを作成するときは、そのリストをviewmodelへの参照として渡します。その後、アイテムviewmodelで簡単に削除できます。 – Csharpest