[C#/WPF] EventSetter 엘리먼트 : Event/Handler 속성을 사용해 ListBoxItem 객체를 마우스 더블 클릭시 처리하기
C#/WPF 2023. 1. 13. 22:44728x90
반응형
728x170
■ EventSetter 엘리먼트의 Event/Handler 속성을 사용해 ListBoxItem 객체를 마우스 더블 클릭시 처리하는 방법을 보여준다.
▶ MainWindow.xaml
<Window x:Class="TestProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="800"
Height="600"
Title="TestProject"
FontFamily="나눔고딕코딩"
FontSize="16">
<Window.Resources>
<XmlDataProvider x:Key="XmlDataProviderKey" XPath="Books">
<x:XData>
<Books xmlns="">
<Book
ISBN="0-7356-0562-9"
Stock="in"
Number="9">
<Title>XML in Action</Title>
<Summary>XML Web Technology</Summary>
</Book>
<Book
ISBN="0-7356-1370-2"
Stock="in"
Number="8">
<Title>Programming Microsoft Windows With C#</Title>
<Summary>C# Programming using the .NET Framework</Summary>
</Book>
<Book
ISBN="0-7356-1288-9"
Stock="out"
Number="7">
<Title>Inside C#</Title>
<Summary>C# Language Programming</Summary>
</Book>
<Book
ISBN="0-7356-1377-X"
Stock="in"
Number="5">
<Title>Introducing Microsoft .NET</Title>
<Summary>Overview of .NET Technology</Summary>
</Book>
<Book
ISBN="0-7356-1448-2"
Stock="out"
Number="4">
<Title>Microsoft C# Language Specifications</Title>
<Summary>The C# language definition</Summary>
</Book>
</Books>
</x:XData>
</XmlDataProvider>
<Style TargetType="ListViewItem">
<EventSetter
Event="MouseDoubleClick"
Handler="listViewItem_MouseDoubleClick" />
</Style>
</Window.Resources>
<ListView ItemsSource="{Binding Source={StaticResource XmlDataProviderKey}, XPath=Book}">
<ListView.View>
<GridView>
<GridViewColumn
Width="300"
Header="Title"
DisplayMemberBinding="{Binding XPath=Title}" />
<GridViewColumn
Width="150"
Header="ISBN"
DisplayMemberBinding="{Binding XPath=@ISBN}" />
</GridView>
</ListView.View>
</ListView>
</Window>
▶ MainWindow.xaml.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Xml;
namespace TestProject
{
/// <summary>
/// 메인 윈도우
/// </summary>
public partial class MainWindow : Window
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainWindow()
/// <summary>
/// 생성자
/// </summary>
public MainWindow()
{
InitializeComponent();
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 리스트 뷰 항목 마우스 더블 클릭시 처리하기 - listViewItem_MouseDoubleClick(sender, e)
/// <summary>
/// 리스트 뷰 항목 마우스 더블 클릭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void listViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
XmlElement bookXmlElement = (sender as ListViewItem).Content as XmlElement;
if(bookXmlElement == null)
{
return;
}
if(bookXmlElement.GetAttribute("Stock") == "out")
{
MessageBox.Show("Time to order more copies of " + bookXmlElement["Title"].InnerText);
}
else
{
MessageBox.Show(bookXmlElement["Title"].InnerText + " is available.");
}
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] Popup 엘리먼트 : PlacementTarget 속성을 사용해 팝업 표시하기 (0) | 2023.01.16 |
---|---|
[C#/WPF] Popup 엘리먼트 : PlacementTarget/Placement 속성을 사용해 팝업 표시하기 (0) | 2023.01.15 |
[C#/WPF] Popup 엘리먼트 : IsOpen 속성을 사용해 팝업 표시하기/숨기기 (0) | 2023.01.15 |
[C#/WPF] Menu 엘리먼트 : 메뉴 스타일 설정하기 (0) | 2023.01.14 |
[C#/WPF] GridViewRowPresenter 엘리먼트 : 데이터 표시하기 (0) | 2023.01.13 |
[C#/WPF] GridSplitter 엘리먼트 : Panel 엘리먼트의 ZIndex 첨부 속성을 사용해 그리드 스플리터 숨김 방지하기 (0) | 2023.01.12 |
[C#/WPF] GridSplitter 엘리먼트 : 그리드 행 크기 변경하기 (0) | 2023.01.12 |
[C#/WPF] DockPanel 클래스 : 공간 분할하기 (0) | 2023.01.12 |
[C#/WPF] Storyboard 엘리먼트 : 비동기 프로세스 동안 연속 애니메이션 표시하기 (0) | 2023.01.11 |
[C#/WPF] Style 엘리먼트 : TargetType 속성을 사용해 MenuItem 엘리먼트 스타일 설정하기 (0) | 2023.01.09 |
댓글을 달아 주세요