質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

9972閲覧

comboboxにクラス型のリストを表示させる方法(Binding)

ygoooo

総合スコア71

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2018/02/08 08:39

C#初心者です。

データベースから特定の列のみ抜き取ったものをリストに格納し、コンボボックスに表示させたいのですがカラム(変数)を指定する方法がわかりません。

C#

1public class SampleClass{ 2 public int ID { get; set; } 3 public string Name { get; set; } 4}

上記のクラス型リストにデータを格納し、

XAML

1 <ComboBox x:Name="SampleCBox" ItemsSource="{Binding ItemsSourceCBox, Mode=OneWay}" 2SelectedValue="{Binding SelectedValueCBox, Mode=TwoWay}" 3SelectedValuePath="SelectCBox" DisplayMemberPath="PathCBox" 4IsEnabled="{Binding Path=IsEnabledCBox}" VerticalAlignment="Top"> 5  <i:Interaction.Behaviors> 6   <behavior:ComboBoxSelectionChangedBehavior 7   Command="{Binding SelectChangedCommandCBox}"/> 8  </i:Interaction.Behaviors> 9 </ComboBox> 10

上記のコンボボックスに「Name」部分を表示したいのですが、どうしても「ID」のみ表示されます。
DBからListに格納する部分は問題なくできていたので、おそらくBind部分が不足しているのかなとは思われます。

ご教示ください。

以下、四苦八苦している格納部分です。

C#

1// DB接続、SQL実行 2public List<SampleClass> GetList(){ 3 using(var connection = new SqlConnection(getConnectionString())){ 4 connection.Open(); 5 var command = new SqlCommand(); 6 string query="SELECT文"; 7 List<SampleClass> mappingobj = connection.Query<SampleClass>(query); 8 return mappingobj; 9 } 10} 11 12// リスト取得 13public List<Sampleclass> GetListService(){ 14 List<SampleClass> SampleClass = new List<SampleClass>(); 15 SampleClass = GetList(); 16 return SampleClass; 17} 18 19// Load時、コンボボックスに格納 20public void ViewModel(){ 21 List<SampleClass> SampleClass = new List<SampleClass>(); 22 sampleClass = GetListService(); 23 ItemsSourceCBox = new ObservableCollection<SampleClass>(sampleClass); 24 IsEnabledCBox = true; 25} 26 27//ItemsSourceCBox 変更プロパティ 28private ObservableCollection<SampleClass> _ItemsSourceCBox; 29private ObservableCollection<SampleClass> ItemsSourceCBox{ 30 //getter setter(省略) 31}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DisplayMemberPathがNameになっていないからでは?

XML

1 <ComboBox x:Name="SampleCBox" ItemsSource="{Binding ItemsSourceCBox, Mode=OneWay}" 2SelectedValue="{Binding SelectedValueCBox, Mode=TwoWay}" 3SelectedValuePath="SelectCBox" DisplayMemberPath="Name" 4IsEnabled="{Binding Path=IsEnabledCBox}" VerticalAlignment="Top">

投稿2018/02/08 10:14

ebiryo

総合スコア797

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ygoooo

2018/02/09 00:14

教えていただいた通り記述し無事表示できました! ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問