我有一个父usercontrol,这里是xaml的摘录
<Grid x:Name="LayoutRoot" Width="Auto" Height="Auto" Background="Black" >
<ItemsControl ItemsSource="{Binding Path=Downloads, Source={StaticResource theViewModel}}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Downloader:DownloadControl DataContext="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</UserControl>
在这个usercontrol中(在下载可观察集合中每个项目添加一个)我有多个下载器:下载用户控件(如上面的项目模板中所示),其中包含以下xaml通知绑定到百分比完成和datacontext ..
</Grid.RowDefinitions>
<ProgressBar x:Name="progressbar" IsIndeterminate="False" Minimum="0"
Maximum="100" Value="{Binding PercentageComplete}" DataContext="{Binding}"
Height="20" HorizontalAlignment="Left" Margin="69,35,0,0" VerticalAlignment="Top"
Width="600" Foreground="#FF20B802"/>
这一切都很棒,我添加一个项目到UI收集新项目,添加一个新的控件,甜。问题是,我希望能够在代码隐藏中获取Child用户控件中的绑定对象,所以我可以在其上调用方法,我只是无法找到一种方法来实现它,在代码隐藏中为子控件我希望能够做这样的事情
public DownloadControl()
{
// Required to initialize variables
InitializeComponent();
object DownloadEntity = this.DataContext as DownloadEntity;
}
但没有datacontext ......
有没有办法获得我的子用户控件绑定的“对象”?
谢谢!
答案 0 :(得分:2)
因为我现在已经发现如果我处理xaml中控件的事件,则设置datacontext并且可以如下导出
MyDataBoundEntity mdbe = this.DataContext as MyDataBoundEntity;
这很容易