MVMS 패턴을 사용하는 내 xamarin.forms 응용 프로그램에서 ListView에 문제가 있습니다. 네가 나를 도울 수 있기를 바랍니다. 당신이 볼 수 있듯이Button 명령에서 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에 대한 참조로 전달하십시오. 그러면 항목보기 모델에서 쉽게 제거 할 수 있습니다. – Csharpest