Observable Collection
に格納されているCar Objectsでいっぱいのリストボックスを作成しています。彼らは2つの文字列を含む以下オブジェクトはObservableCollectionリストからListBoxに呼び出された後に表示されません。しかしそれはまだ存在し、選択可能です
var ListQuery = from c in db.Cars
select c;
foreach (var car in ListQuery)
{
Car c1 = new Car(car.ID, car.Make, car.Model, car.Size);
CarList.Add(c1);
}
Carクラスをされています
私は車のクラスオブジェクトにそれらを作り、次のように監視可能なコレクションのCarListにそれらを格納し、LINQのデータベースから車の詳細を取っていますとして保存されます。
public class Car
{
public int ID { get; set; }
public string Make { get; set; }
public string Model { get; set; }
public string Size { get; set; }
public Car (int id, string make, string model, string size)
{
Size = size;
Make = make;
Model = model;
ID = id;
}
public override string ToString()
{
return string.Format("{0} - {1}", Make, Model);
}
//This method is for displaying the selected listbox Item's details in a textbox.
public string GetDetails()
{
return string.Format("CarID: {0}\nMake: {1}\nModel: {2}\n",
ID, Make, Model);
}
最後に、ボタンを押すと、リストボックスにCarList項目が設定されます。
private void btn_Search_Click(object sender, RoutedEventArgs e)
{
lbx_CarList.ItemsSource = CarList;
}
オブジェクトはリストボックスを満たし、選択可能ですが表示されません。私はクラス内のToString()
メソッドが表示されているものだと思ったでしょうが、そうではありません。
以下は、WPFウィンドウと、リストボックス内のアイテムが選択されたときの表示内容を示しています。 When code runs and listbox is populated with Car class objects from CarList Observable Collection
誰かが私が紛失しているか、オブジェクトアイテムの文字列を表示する方法を知っていますか?私は
lbx_CarList.ItemsSource = CarList.ToString()
と
CarList.ToList()
が、無駄とを試してみました。私はそれが私が逃した明らかなものではないことを願っています。どんな助けも素晴らしいだろう!ありがとうございました。
編集:Xamlが追加されました。私が取り出した余分なものがいくつかあったので、質問に関連するコードだけが残りました。
<Window x:Class="FinalProject.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:FinalProject"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<Label x:Name="label3" Content="Available Cars" HorizontalAlignment="Left" Margin="53,184,0,0" VerticalAlignment="Top" FontWeight="Bold"/>
<ListBox x:Name="lbx_CarList" HorizontalAlignment="Left" Height="99" Margin="53,210,0,0" VerticalAlignment="Top" Width="233" DisplayMemberPath="Description" SelectedValuePath="ID" SelectionChanged="lbx_CarList_SelectionChanged"/>
<TextBlock x:Name="tbk_CarDetails" HorizontalAlignment="Left" Margin="319,210,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="99" Width="146" ClipToBounds="True"/>
<Label x:Name="label4" Content="Selected Car" HorizontalAlignment="Left" Margin="319,184,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.421,-0.115" FontWeight="Bold"/>
<Image x:Name="img_Car" HorizontalAlignment="Left" Height="100" Margin="319,56,0,0" VerticalAlignment="Top" Width="158"/>
<Button x:Name="btn_Search" Content="Search" HorizontalAlignment="Left" Margin="167,159,0,0" VerticalAlignment="Top" Width="75" Click="btn_Search_Click"/>
</Grid>
xamlを表示する – Eldho
あなたのバインディングのパス部分が不足している可能性があります。 @Eldhoが既に尋ねたようにXAMLを表示 – Pikoh
上記のXamlが追加されました。ありがとうございました –