ResultsViewModel クラスにアタッチされた WPF のデータ テンプレートがあり、VM をテーブル形式でレンダリングします。これらの束が ListBox の ListBoxItems を構成します。私が望むのは、個々のテーブルの境界線の右上に小さな X があることです。それをクリックすると、リストボックスからその項目を削除する関数が呼び出されます。
ハイパーリンクとイベント OnClick を試してみましたが、イベントを使用するには ax:Class タグが必要なため、リソース ディクショナリではなくメイン XAML に DataTemplate を配置する必要がありますが、MainViewModel でイベントが発生します。監視可能なリストは MainViewModel に保持されており、とにかくその時点で削除する必要があるため、世界で最悪のことではありませんが、含まれているリスト ボックス項目の ResultsViewModel への参照を取得する方法がわかりません。クリックされたデータ テンプレート
<DataTemplate x:Key="ErroredResultsTemplate" DataType="x:Type vm:ResultsViewModel" >
<Border x:Name="Border" BorderBrush="{StaticResource ResultProcessedBorder}" Background="{StaticResource ResultFill}" BorderThickness="4" CornerRadius="10" Margin="6" Padding="5" Width="110" Height="110">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20" />
<RowDefinition Height="83" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Foreground="{StaticResource ResultGrayText}" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Top">
<Hyperlink Click="Close_Results">X</Hyperlink>
</TextBlock>
<TextBlock Width="90" Text="An error occurred calculating results" TextWrapping="Wrap" Foreground="{StaticResource ResultGrayText}" FontWeight="Bold" Grid.Row="1" HorizontalAlignment="Center" VerticalAlignment="Top" TextAlignment="Center" />
</Grid>
</Border>
</DataTemplate>