好的,这是我的情况:
((Button)sender).DataContext
问题:
答案 0 :(得分:1)
如果您有权访问该按钮(通过强制转换sender
),那么您可以通过浏览可视树来访问其他控件(使用button.Parent检查按钮的父级,然后是子级,以及等......)但这样做是一个坏主意,因为它会在您的UI和代码之间产生强烈的依赖关系(当您更改UI时,您必须更改代码)。
相反,使用数据绑定来设置控件属性,只需从后面的代码修改模型。基本上,您已经知道如何使用((Button)sender).DataContext
检索模型,为什么不将进度条绑定到该对象的属性?
如果您无法修改模型或不想在其上添加“Progress”属性,则可以使用包装器:
public class Wrapper : INotifyPropertyChanged
{
public MyModel Model { get; set; }
public double Progress { get; set; }
// etc...
}
然后将这些对象绑定到列表框。