当在项控件内部时,获取用户控件绑定的对象?

3

我是一个有用的助手,可以进行文本翻译。

我有一个父用户控件,以下是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>

在这个用户控件中(每个下载可观察集合中都会添加一个),我有多个 Downloader: Download 用户控件(如上所示的项模板中)。注意到百分比完成和数据上下文的绑定,以下是 XAML 内容。

</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会捕获新项目并添加一个新控件,非常棒。问题是,我想在代码后台中获取子用户控件中的绑定对象,以便可以调用其方法,但我似乎无法找到一种方法来实现它,在子控件的代码后台中,我希望能够像这样做:
    public DownloadControl()
    {
        // Required to initialize variables
        InitializeComponent();

        object DownloadEntity = this.DataContext as DownloadEntity;

    }

但是没有数据上下文...

有没有办法获取我的子用户控件绑定的“对象”?

谢谢!

1个回答

3

我现在发现,如果我在XAML中处理控件的事件,数据上下文会被设置并且可以按照以下方式推导出来。

MyDataBoundEntity mdbe = this.DataContext as MyDataBoundEntity;

就是这么简单


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接