6 Stimmen

Ein gebundenes Objekt von einem Steuerelement abrufen

Ich habe die folgende Xaml:

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

In meinem Code habe ich ein Ereignis, das mir Zugriff auf die Schaltfläche gibt. Wie kann ich das Schaltflächenobjekt nehmen und das Objekt erhalten, an das der Name der Schaltfläche gebunden ist?

Hier ist der psudo-Code, den ich gerne verwenden würde:

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

   // Do something with myObject.
}

20voto

Ian Oakes Punkte 9986

Versuchen Sie, auf die DataContext-Eigenschaft zuzugreifen. Diese enthält einen Verweis auf das aktuelle Element, an das die Schaltfläche gebunden ist.

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

   // Do something with myObject. 
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X