使用UserControl内部的基本控件的属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用UserControl内部的基本控件的属性相关的知识,希望对你有一定的参考价值。
如何在不使用DependencyProperty
的情况下使用用户控件内部控件的属性?
因为,例如,如果我想使用按钮的所有属性,我将不得不声明所有这些?
如果有另一种方式没有用户控制而且它是正确的,如果你回答它我会很感激。 (谷歌翻译,对不起)
用户控件:
<UserControl x:Class="UserControls.UserControl01"
...
>
<Grid>
<Button x:Name="uc_btn" />
<TextBox x:Name="uc_txt" />
<DataGrid x:Name="uc_dtg" />
</Grid>
</UserControl>
使用UserControl的代码:
<Window x:Class="UserControls.wnd02"
...
>
<Grid>
<local:UserControl01 uc_btn.Background="Red" uc_txt.Margin="10" uc_dtg.BorderThickness="5" Margin="90" />
<local:UserControl01 uc_btn.Background="Green" uc_txt.Margin="25" uc_dtg.BorderThickness="20" Margin="5" />
</Grid>
</Window>
做你想问的事并不常见。
让我们考虑一个用户控件,它就像是一个控件一样工作。例如,时间选择器。这包含两个增加/减少小时和分钟的滑块。您还可以在小时和分钟文本框中进行改写,并且在两个文本框之间有一个:。
这个用户控件是关于一个属性的。时间。您不关心外部的分钟背景。如果这改变了它在usercontrol的内部。
在这种情况下,您通常会向用户控件添加一个TimeSpan依赖项属性,这是它使用外部的唯一内容。
几乎所有商业WPF开发都使用MVVM模式,并且TimeSpan将绑定到父视图的viewmodel中的属性。
这是一个场景。
另一个是usercontrol封装了一堆可重用的UI。
样式具有范围,因此当您应用样式在窗口中说出按钮时,那将适用于其中的用户控件中的任何按钮。设置他们的属性。
还有某些依赖属性标记为“inherits”,其值在视觉树中传播。
其中之一就是DataContext,大多数团队都会使用它来处理用户控件中的属性。
使用MVVM会有一个MainWindowViewModel。
那会有(比方说)ChildUserControlViewModel属性。这将与使用datatemplate指定数据类型的usercontrol相关联。
然后,您可以使用RelativeSource绑定将usercontrol中任何内容的属性绑定到ChildUserControlViewModel的属性或MainWindowViewModel的属性。
ViewModel首先是WPF的常见导航和合成模式。您应该能够找到许多博客,在SO帖子中比我能更好地解释它。
这是一个:
以上是关于使用UserControl内部的基本控件的属性的主要内容,如果未能解决你的问题,请参考以下文章
WPF ----在UserControl的xaml里绑定依赖属性