how to bind to the results of a query in WPF
I have a query that hits a service and returns the results back to me as an indexed collection
static void QueryActivities()
{
QueryClient qc = new QueryClient("BasicHttpBinding_IQuery");
QueryFilter filter = new QueryFilter();
filter.CallForService = false;
var result = qc.GetFilteredActivityIndex(filter);
result.Clone(); //inserted this just to test return in debug mode开发者_Go百科
}
WHen this is executed I get a return of 5 records ( actually five rows of data with multiple values per each row. id, type, date, address etc).
I would like to bind this return to a gridview within a WPF application. Is there a way to refernce and bind to result variable or do I need to create a new collection and then add the return of result to the new collection?
thank you
There might be a way with WPF Toolkit's DataGrid. However, I would create a custom object and make an ObservableCollection
of that object and bind to it. The ObservableCollection is a collection meant for this type of use and you can bind the elements inside your custom object to the different elements in your gridview.
Update:
Based on your comment it feels as if you need a good tutorial for binding with MVVM. The best tutorial I have seen on this is Jason Dolinger's tutorial. It helps you bind associated properties from a collection of a custom class.
A new class(ViewModel) level Collection with its associated property would be better.
After some testing I found that I could bind directly to the query. The variabl;e results acts as it's own List Collection. That being said I have been able to display the data using:
private void QueryActivities()
{
QueryClient qc = new QueryClient("BasicHttpBinding_IQuery");
QueryFilter filter = new QueryFilter();
filter.CallForService = false;
var result = qc.GetFilteredActivityIndex(filter);
this.actGridView.ItemsSource = result; //binds to the gridview
}
Thanks for all the comments on using collections.
精彩评论