Ich habe eine Listview wie folgt aus:Wie klicken Sie auf eine Schaltfläche in ListView Element?
<Grid x:Key="Thumbnail" Width="{Binding ActualWidth, ElementName=DummyRectangle}" Height="{Binding ActualHeight, ElementName=DummyRectangle}" HorizontalAlignment="Center" VerticalAlignment="Top" Background="Transparent" >
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="1*" />
</Grid.ColumnDefinitions>
<Image Name="thumbImage" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="14" Grid.RowSpan="7" Stretch="UniformToFill" Source="/MS_Show_Assets/ImportAssets/Test.jpg"></Image>
<StackPanel Name="Overlay" Grid.Row="0" Grid.Column="10" Grid.ColumnSpan="4" Grid.RowSpan="7" Background="LightBlue" Opacity="0.4"/>
<Button Name="slide_ON_OFF" Grid.Row="0" Grid.Column="10" Grid.ColumnSpan="4" Grid.RowSpan="4" VerticalAlignment="Center" Background="Transparent" Command="{Binding SlideOnOffCommand}">
<Button.Template>
<ControlTemplate>
<Grid RenderTransformOrigin="0.5,0.5" x:Name="bg">
<Image Source="/MS_Show_Assets/ImportAssets/Visible_ON.png"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
<Button Name="fadein_ON_OFF" Grid.Row="3" Grid.Column="10" Grid.ColumnSpan="4" Grid.RowSpan="4" VerticalAlignment="Center" Background="Transparent">
<Button.Template>
<ControlTemplate>
<Grid RenderTransformOrigin="0.5,0.5" x:Name="bg">
<Image x:Name ="main_image" Source="/MS_Show_Assets/ImportAssets/Bulletpoint_ON.png"/>
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
und das Ansichtsmodell:
public CompositeCommand SlideOnOffCommand { get; set; }
SlideOnOffCommand = new CompositeCommand();
SlideOnOffCommand.RegisterCommand(new DelegateCommand(SlideOnOff));
private void SlideOnOff()
{
}
Als
<ListView x:Name="Thumbnails" HorizontalContentAlignment ="Left" VerticalContentAlignment="Top" Padding="0" Background ="#81AFD3" Grid.Row="6" Grid.Column="6" Grid.ColumnSpan="10" Grid.RowSpan="27" ScrollViewer.VerticalScrollBarVisibility="Visible" ItemsSource="{Binding NumberOfSlides}" SelectedItem="{Binding SelectedItem}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding ThumbnailsSelectionChangedCommand}" CommandParameter="{Binding Thumbnails.SelectedIndex, Mode=OneWayToSource}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Content" Value="{StaticResource Thumbnail}" />
<Setter Property="Margin" Value="{Binding ActualWidth, ElementName=DummyRectangle2}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Blue"/>
</ListView.Resources>
</ListView>
und das Element für die Liste wie folgt definiert ist Sie können sehen, das Listenelement enthält einige Schaltflächen. Ich hakte einen von ihnen an einen Befehl in ViewModel, aber wenn Sie darauf klicken, wird die abonnierte Methode nicht aufgerufen. Wie können diese Schaltflächen klickbar gemacht werden?
auch zeigen Sie Ihre relevanten ViewModel Teil. – AnjumSKhan