I have a public property on one of my classes that is configurable by a PropertyGrid. It is a string property, but I want the user to be able to set it from a RadComboBox with values provided from an OpenAccess data model. I can't seem to put all the pieces together. The closest I got puts an odd value in the public property ("Telerik.Windows.Controls.RadComboBoxItem: City, State"). I've been banging my head against this for days and I'm tantalizingly close, but I'm just not seeing something.
How do I connect all the bits? The choices to the data source and the selected item to the public property? Here's my code without all my failed efforts taking up space.
Here's the property:
Here's the RadComboBox in the DataTemplate:
And here's the code-behind to (hopefully) populate the control:
How do I connect all the bits? The choices to the data source and the selected item to the public property? Here's my code without all my failed efforts taking up space.
Here's the property:
private
string
weatherloc;
[Category(
"MissionBoard"
)]
[Description(
"Weather station location"
)]
public
string
WeatherLoc
{
get
{
return
weatherloc; }
private
set
{ weatherloc = value; }
}
Here's the RadComboBox in the DataTemplate:
<
Grid.Resources
>
<
c:FieldTemplateSelector
x:Key
=
"DataTemplateSelector"
>
<
c:FieldTemplateSelector.WeatherDataTemplate
>
<
DataTemplate
>
<
telerik:RadComboBox
x:Name
=
"WeatherComboBox"
Loaded
=
"WeatherComboBox_Loaded"
/>
</
DataTemplate
>
</
c:FieldTemplateSelector.WeatherDataTemplate
>
</
c:FieldTemplateSelector
>
</
Grid.Resources
>
And here's the code-behind to (hopefully) populate the control:
private
void
WeatherComboBox_Loaded(
object
sender, RoutedEventArgs e)
{
using
(EntitiesModel dbContext =
new
EntitiesModel())
{
try
{
var q = (from i
in
dbContext.WeatherFeeds
orderby i.Location
select
new
{ i.Location }).ToList();
// How to bind all the bits? The public property to the SelectedItem
// and the choices to the data source.
}
catch
(SqlException sx)
{
Console.WriteLine(sx.ToString());
}
catch
(Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}