Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9509

WPFで中身がClassアイテムのListBox.SelectedItemを取得する

$
0
0

既出かもしれませんが備忘録として。

SelectedItems(複数選択)の取り出し方も書きました
https://qiita.com/Michio029/items/3b531acd46bb1f81f7d7

準備

リストと中身を用意します
image.png

MainWindow.xaml
<Window><!-- Windowの細かいのは省略 --><Grid><Grid.RowDefinitions><RowDefinitionHeight="*"/><RowDefinitionHeight="50"/></Grid.RowDefinitions><ListBoxGrid.Row="0"Name="ExampleList"Margin="10"SelectionMode="Single"ScrollViewer.VerticalScrollBarVisibility="Auto"><!-- SelectionMode="Single" :リストから一つしか選択できない --><ListBox.ItemTemplate><DataTemplate><StackPanelOrientation="Horizontal"><TextBlockText="{Binding Id, StringFormat=IDは{0} :}"/><TextBlockText="{Binding Name, StringFormat= Nameは{0} :}"/><TextBlockText="{Binding Age, StringFormat= Ageは{0}}"/></StackPanel></DataTemplate></ListBox.ItemTemplate></ListBox><ButtonGrid.Row="1"Name="Btn"Content="ボタン"Margin="100,10,100,10"Click="Btn_Click"/></Grid></Window>

<TextBlock Text="{Binding Id, StringFormat=IDは{0} :}"/>
この辺の文字列のフォーマットの書き方についてはこちらで詳しく解説してくれています。
https://qiita.com/koara-local/items/815eb5146b3ddc48a8c3

MainWindow.xaml.cs
publicpartialclassMainWindow:Window{List<ExampleClass>list=newList<ExampleClass>();publicMainWindow(){InitializeComponent();list.Add(newExampleClass(){Id=0,Name="aaa",Age=10});list.Add(newExampleClass(){Id=1,Name="bbb",Age=20});list.Add(newExampleClass(){Id=2,Name="ccc",Age=30});list.Add(newExampleClass(){Id=3,Name="ddd",Age=40});list.Add(newExampleClass(){Id=4,Name="eee",Age=50});ExampleList.ItemsSource=list;}privatevoidBtn_Click(objectsender,RoutedEventArgse){}}classExampleClass{publicintId{get;set;}publicstringName{get;set;}publicbyteAge{get;set;}}

SelectedItemを取り出す

ボタンの処理を追記します。

privatevoidBtn_Click(objectsender,RoutedEventArgse){// 選択項目が0 => メソッドを出るif(ExampleList.SelectedItems.Count==0)return;// ExampleClassとして取り出すExampleClassselitem=ExampleList.SelectedItemasExampleClass;// 中身の確認Console.WriteLine("選択中の項目 Id:{0} Name:{1} Age{2}",selitem.Id,selitem.Name,selitem.Age);}



ボタンを押してみます
image.png

実行結果

選択中の項目 Id:0 Name:aaa Age10

取り出せました。


Viewing all articles
Browse latest Browse all 9509

Trending Articles