0

曲を表すテンプレートがあります。

<DataTemplate x:Key="songTemplate" DataType="local:song">
        <Border BorderBrush="Gray" BorderThickness="1" Padding="2">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                    <RowDefinition Height="auto"/>
                </Grid.RowDefinitions>
                <Grid Name="songGrid" Grid.Row="0">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto"/>
                        <RowDefinition Height="auto"/>
                        <RowDefinition Height="auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="auto"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <TextBlock Grid.Column="0" Grid.Row="0" Text="title: "/>
                    <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding Path=title}"/>
                    <TextBlock Grid.Column="2" Grid.Row="0" Text="artist: "/>
                    <TextBlock Grid.Column="3" Grid.Row="0" Text="{Binding Path=artist}"/>
                    <TextBlock Grid.Column="0" Grid.Row="1" Text="path: "/>
                    <TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding Path=path}"/>
                    <TextBlock Grid.Column="2" Grid.Row="1" Text="status: "/>
                    <TextBlock Grid.Column="3" Grid.Row="1" Text="{Binding Path=stat}"/>
                </Grid>
                <Grid Grid.Row="1">
                    <Expander Margin="2" Padding="2" BorderBrush="Gray" BorderThickness="1" ExpandDirection="Down" >
                        <TextBlock Width="400" Text="{Binding Path=statInfo}" TextWrapping="Wrap"/>
                    </Expander>
                </Grid>
                <Grid Grid.Row="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Button VerticalAlignment="Center" Grid.Column="0">
                        <Image Source="pictures/check.gif"/>
                    </Button>
                    <Button Name="Cancel" VerticalAlignment="Center" Grid.Column="1" Click="DontSave">
                        <Image Source="pictures/cross.gif"/>
                    </Button>
                </Grid>
            </Grid>
        </Border>
    </DataTemplate>

コードビハインドのobservebalecollctionに曲を追加していますが、リストボックスで曲が更新されています。テンプレートには2つのボタンがあります。そのうちの1つは、リストから曲を削除する必要があります。リストで選択したアイテムを使用してリストから曲を削除する方法を見つけようとしていますが、ボタンをクリックしてもアイテムが選択されていません。

どうすれば削除できますか?

4

1 に答える 1

0

ClickEventHandler でこれを試してください。

    void DontSave(object sender, RoutedEventArgs e)
    {
        song s = ((FrameworkElement)sender).DataContext as song;
        if (s != null && songCollection.Contains(s)) songCollection.Remove(s);
    }
于 2012-12-21T17:11:25.587 に答える