コンボボックスに配置されたアイテムにラベル機能を使用する方法はありますか?
現在ToString()
、ラベルを取得するためにを使用しています。例として、次ComboBox
のタイプのリストオブジェクトに裏打ちされたがありますPerson
。
namespace WpfApplication1 {
public class Person {
public string fname { get; set; }
public string mname { get; set; }
public string lname { get; set; }
public Person(string fname, string mname, string lname) {
this.fname = fname;
this.mname = mname;
this.lname = lname;
}
public override string ToString() {
return this.lname +", " + this.fname + " "+ this.mname;
}
}
}
しかし今、あなたは一人一人のテキストをちょうどthis fname + " "+ this.mname[0]+" "+this.lname
いくつかの場所に置きたいと思っています。理想的には、次のようなメソッドをバッキングXAMLcsファイルに追加できるようにしたいと思います。
public string GetLabel(Person item) {
return item.fname + " " + item.mname[0] + " " + item.lname;
}
そして、どういうわけか、csファイルのメソッドでComboBoxをポイントします。
XAMLファイルのサンプルとヘルプがある場合はXAML.csを次に示します
。MainWindow.xaml
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="100" Width="250">
<Grid>
<ComboBox x:Name="items" Height="22" Width="200" ItemsSource="{Binding}"/>
</Grid>
</Window>
MainWindow.xaml.cs
using System.Collections.Generic;
using System.Windows;
namespace WpfApplication1 {
public partial class MainWindow : Window {
public List<Person> persons { get; set; }
public MainWindow() {
InitializeComponent();
this.persons = new List<Person>();
persons.Add(new Person("First", "Middle", "Last"));
persons.Add(new Person("John", "Jacob", "Jingleheimer"));
persons.Add(new Person("First", "Middle", "Last"));
this.items.DataContext = this.persons;
}
public string GetLabel(Person item) {
return item.fname + " " + item.mname[0] + " " + item.lname;
}
}
}