我已經在列表框中爲我的ListBoxItem創建了一個控件模板,並且每個ListBoxItem都由contentpresenter和一個圖像組成。通過點擊列表框中的特定元素來查找列表框
我對你的問題是......我怎麼知道,當我點擊列表框中的圖像時,我點擊了哪個列表框。
<Style x:Key="ListBoxItemWithDelete" TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border Name="Border" Padding="2" SnapsToDevicePixels="true">
<Grid>
<ContentPresenter VerticalAlignment="Center" />
<Image Name="ImageListItemDelete" Source="../Resources/Images/actions-delete-big-1.png" Width="20" Style="{StaticResource MenuItemIcon}" HorizontalAlignment="Right"
MouseLeftButtonUp="ImageListItemDelete_MouseLeftButtonUp"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
private void ImageListItemDelete_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
//Object sender is my Image i Clicked.
if (ListBoxName.SelectedItem != null)
{
ListBoxName.Items.Remove(ListBoxName.SelectedItem);
}
}
我想用包含這個圖像的列表框替換ListBoxName,我點擊了,現在「ListBoxName」是硬編碼的。
我知道如何通過listboxitems找到他們的內容模板,但我不知道如何以相反的方式工作。 :/
謝謝..這正是我正在尋找的。我知道另一個通過子元素向下穿過的人。 –