c# - 从控件获取绑定(bind)对象

标签 c# wpf data-binding binding

我有以下 xaml:

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

在我的代码中,我有一个事件让我可以访问按钮。我如何获取按钮对象并获取其名称绑定(bind)到的对象?

这是我想要使用的伪代码:

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

   // Do something with myObject.
}

最佳答案

尝试访问 DataContext 属性。这将包含对按钮绑定(bind)到的当前项目的引用。

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

   // Do something with myObject. 
} 

关于c# - 从控件获取绑定(bind)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174204/

相关文章:

c# - 在单独线程中加载屏幕的问题

c# - 如何避免手动实现 INotifyPropertyChanged

c# - WPF 将 comboBox 绑定(bind)到 List<string>

c# - 定义用于通过反射加载自定义 UserControl 的接口(interface)

javascript - 将 javascript 应用到 html 以获取数千个文档的最快方法

c# - WPF DataGrid 中的文本对齐方式

wpf - 在全屏应用程序中将模态 WPF 窗口居中

objective-c - 以编程方式禁用列的 "create sort descriptor"

c# - 为什么我不能在 WCF REST POST 方法中使用两个参数?

c# - 由于访问修饰符,子控件无法访问