Я пытаюсь отправить в модель представления текущий элемент управления FlipView с использованием MVVM Light.Отправить FlipViewItem как RelayCommandParameter в приложении Windows Store
Часть XAML код, представляющий элемент управления FlipView заключается в следующем:
<FlipView x:Name="mainFlipView" Margin="0,10,0,10" ItemsSource="{Binding AlbumItems, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<FlipView.ItemTemplate>
<DataTemplate>
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Text="{Binding Caption}"
FontSize="23"
HorizontalAlignment="Center"
TextAlignment="Center"
TextWrapping="Wrap"
Margin="10"/>
<ScrollViewer Grid.Row="1" ZoomMode="Enabled">
<uc:ImageViewer FilePath="{Binding ImagePath}" />
</ScrollViewer>
<TextBlock Text="{Binding NrOfVotes}" FontSize="20"
Grid.Row="2" HorizontalAlignment="Center"
Margin="10" />
</Grid>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
...
Часть XAML код элемента, содержащего команду реле:
<Page.BottomAppBar>
<CommandBar>
<AppBarButton x:Name="appBarButtonDelete" Label="Delete" Icon="Delete"
Command="{Binding DeleteItemCommand}"
CommandParameter="{Binding ElementName=mainFlipView, Path=SelectedItem}"/>
</CommandBar>
</Page.BottomAppBar>
В ViewModel, то RelayCommand объявляется и используется следующим образом:
public class ResultsPageViewModel : ViewModelBase
{
public RelayCommand<MyModel> DeleteItemCommand { get; private set; }
public ResultsPageViewModel()
{
this.DeleteItemCommand = new RelayCommand<MyModel>(post => DeleteItem(post));
}
public void DeleteItem(MyModel p)
{
//P is always null here...
}
}
Проблема в том, что в DeleteItem
Функция всегда получает параметр null
. Я попытался объявить RelayCommand как RelayCommand<object>
, но проблема не устранена.
Я также пробовал метод «обходного пути», объявляющий связующее свойство MyModel
и привязывая его к FlipView. Это работает, но я хотел бы знать, что я делаю неправильно в этой ситуации.
Спасибо заранее!
Что такое тип AlbumItems? – bit
Это 'ObservableCollection' –
rhcpfan
любые идеи? благодаря! – rhcpfan