7
Reply

Can't see bound Items in Listbox.

Ephismen

Ephismen

Sep 1 2010 5:56 AM
5.4k
Hello everyone,

Before everyones says that this question is often asked let me tell you that I searched on the forums for someone having similar problems but in the end they are always able to accomplish what they wanted at the contrary of me.

I'm trying to bound a simple list to a listbox by creating a new class, declaring new list and adding elements to it but I must be missing a point because what ever I do I can only get the ToString() element type or a blank line.

This is the C# code:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace DataBinding
{


public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
List<Friends> FL = new List<Friends>();
FL.Add(new Friends("Bernard", 20, "Lyon"));
FL.Add(new Friends("Jean", 34, "Paris"));
FL.Add(new Friends("Patrick", 29, "Marseille"));
FL.Add(new Friends("Julie", 56, "Lille"));
FL.Add(new Friends("Bertrand", 23, "Nice"));

TestList.ItemsSource = FL;
}
}

public class Friends
{
string Name { get; set; }
int Age { get; set; }
string Town { get; set; }

public Friends(string Name, int Age, string Town)
{
this.Name = Name;
this.Age = Age;
this.Town = Town;
}
}
}

And here goes the XAML:

 <UserControl x:Class="DataBinding.MainPage"
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"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">

<Grid x:Name="LayoutRoot" Background="Blue">
<ListBox x:Name="TestList" HorizontalAlignment="Center" Width="450" Height="450">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Height="20" Text="{Binding Name}"/>
<TextBlock Grid.Column="1" Height="20" Text="{Binding Age}"/>
<TextBlock Grid.Column="2" Height="20" Text="{Binding Town}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</UserControl>

I tried modifying all the options  and followed the same steps as other in dozens of tutorials, but in the end I never get what i am supposed to. So I guess I must be missing something really stupid.

Thank You.

Answers (7)