I have a custom class Contact
.
I am trying to bind a List<Contact>
to a ComboBox.
But I can't get the right syntax/commands for the Windows.Resources
part, e.g. the code below gives the error "The type reference cannot find a public type named 'List'", what do I need to fix in Windows.Resources
to get this to work?
My XAML:
<Window.Resources>
<ObjectDataProvider
x:Key="contacts"
MethodName="GetContacts"
ObjectType="{x:Type system:List}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="local:GetContacts"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
<StackPanel>
<StackPanel>
<TextBlock Text="Select the contact:"/>
<ComboBox ItemsSource="{Binding
Source={StaticResource contacts}}"/>
</StackPanel>
</StackPanel>
</Window>
My code behind class: namespace dpwpf { class StoreDB { private string connectionString = "App_Data/main.sqlite";
public List<Contact> GetContacts()
{
SQLiteConnection conn = new SQLiteConnection("Data Source=" + connectionString);
SQLiteCommand cmd = conn.CreateCommand();
List<Contact> contacts = new List<Contact>();
try
{
conn.Open();
cmd.CommandText = String.Format("SELECT * FROM contacts");
SQLiteDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Contact contact = new Contact(
Int32.Parse(reader[0].ToString()),
reader[1].ToString(),
reader[2].ToString()
);
contacts.Add(contact);
}
}
finally
{
conn.Close();
}
return contacts;
}
}
}