I am trying to bind GridViewColumn
to a method with parameter.
My current XAML looks like this:
<ListView Margin="10" ItemsSource="{DynamicResource RemoteAgents}" Name="lvRemoteAgents" DataContext="">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Value.ID}" />
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Value.name}" />
<GridViewColumn Header="Type" DisplayMemberBinding="{Binding Value.type}" />
</GridView>
</ListView.View>
</ListView>
ID, name and types are predefined properties of the ItemSource class. These properties are actually fields of the JSON structure. So instead of binding to the properties I want to access JSON field by the field name. In pseudo-code I would look like this:
<ListView Margin="10" ItemsSource="{DynamicResource RemoteAgents}" Name="lvRemoteAgents" DataContext="">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Value.GetValue('ID')}" />
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Value.GetValue('name')}" />
<GridViewColumn Header="Type" DisplayMemberBinding="{Binding Value.GetValue('type')}" />
</GridView>
</ListView.View>
</ListView>
I defined ObjectDataProvider as
<ObjectDataProvider x:Key="GetValue"
ObjectType="{x:Type local:RemoteAgent}"
MethodName="GetField">
<ObjectDataProvider.MethodParameters>
<system:String>empty</system:String>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
And now I bind to the OjbectDataProvider as follows:
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Source={StaticResource GetValue}, BindsDirectlyToSource=True, Mode=OneWayToSource}" />
My problem is how to pass parameter to GetValue function.