Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get a Bound Object from a control

I have the following xaml:

<ItemsControl>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Button Content="{Binding Name}"></Button>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

In my code I have an event that gives me access to the button. How can I take the button object and get the object that it's Name is bound to?

Here is psudo code that I would like to work:

public void MyEvent(Object obj)
{
   Button myButton = (Button) obj;
   MyBoundClass myObject = GetBoundClassFromProperty(myButton.Name);

   // Do something with myObject.
}
like image 505
Vaccano Avatar asked Feb 01 '10 01:02

Vaccano


1 Answers

Try accessing the DataContext property. This will contain a reference to the current item the button is bound to.

public void MyEvent(Object obj) 
{ 
   Button myButton = (Button) obj; 
   MyBoundClass myObject = myButton.DataContext as MyBoundClass;

   // Do something with myObject. 
} 
like image 54
Ian Oakes Avatar answered Nov 09 '22 14:11

Ian Oakes