Search code examples
wpfbindingobjectdataprovider

Binding ObjectDataProvider to a property instead of a method


Suppose you have following class:

class ProcessController
{
    public List<Process> Active { get { ... } }
    ...
    public List<Process> GetProcesses() { ... }
}

I can use the GetMethod to bind a ObjectDataProvider to the GetProcesses() method:

<ObjectDataProvider x:Key="pList"
                    MethodName="GetProcesses"
                    ObjectType="{x:Type local:ProcessController}"/>

My question is, can I also bind to the property Active?

If found out that I can do the following:

<ObjectDataProvider x:Key="pList"
                    MethodName="get_Active"
                    ObjectType="{x:Type local:ProcessController}"/>

But somehow this doesn't feel right.

Is there some cleaner way or "right" way to access a property instead of invoking a method?


Solution

  • You don't need to bind to a property, just bind to the object and use the Path to access the property

    <ObjectDataProvider x:Key="pList"
                        ObjectType="{x:Type local:ProcessController}"/>