Binding并不是dynamic binding,它不能引用后加在的对象。实际上你可以单独设计一个view model,让你的Button1跟这个usercontrol一同使用一个DataContext。通过写<UserControl ......... >
<UserControl.DataContext>
<local:MyModel x:Name="MyContext" />
</UserControl.DataContext>
<Grid >
.......
多个控件绑定到这个MyContext(或者其属性对象),而控件之间根本不直接关联。
<UserControl.DataContext>
<local:MyModel x:Name="MyContext" />
</UserControl.DataContext>
<Grid >
.......
多个控件绑定到这个MyContext(或者其属性对象),而控件之间根本不直接关联。
解决方案 »
- 大家帮忙告诉我一下如何点击图片实现跳转到另一个页面
- 关于winform,求解答
- 如何修改treeview指定节点的名称,而其他节点名称不可改?
- 急~~~DataTable执行Select语句的问题
- PictureBox控件使用了ImageList里面的图片,为什么图片非常模糊? 万分感谢!
- 谁能帮我?
- 数据库中存入图片路径,怎么在前台用c#显示出来?
- c#中,两个list联合排序的问题
- "对于不返回任何基表信息的 SelectCommand 不支持动态 SQL 生成"错误如何改正,在线等待
- 在学习window下的UserControl的编程,就是怎样用现成的控件组合成自己想要的控件。。。。
- 请教linq 的语法关于in 和 not in
- 异步监听问题
{
public string 名称1
{
set{ ..... }
.......
public Rectangle 用户拖放大小
{
set{ ....... }
........
}然后,你的两个Button的宽度都可以跟“名称1”绑定起来,同时提供一个converter将“名称1”字符串计算出应该显示的宽度,这样当设置这个“名称1”时两个button的width同时会发生改变;而你的用户控件的Width则跟“用户拖放大小”绑定起来,同时提供一个converter将Rectangle 类型对象中的width取出来。
不过,我现在想问的问题不是这个,这个例子也是我随便举的,我就想弄明白为什么在UserControl中设置DataContext为什么不行呢,如果像你所说的那样,不能绑定为加载的对象,那么,我试了一下,把上面代码的放到Window中,却是行得通的,在Window标签中设置DataContext,也照样能够绑定。
有更好的答案吗?
public UserControl1()
{
InitializeComponent();
this.DataContext = this.btn1.Width;
}
如果换成是Window,把DataContext放在Window标签又是没有问题的,完全可以实现绑定,但就是不知道为什么放在UserControl里面,就行不通。
{binding} 不设定明确的绑定的source,他会从本控件类为开始根据可视树的层次结构自下而上查找不为空的Datacontext属性的值,所以你写在上面它就直接没去找
好吧,把顶楼的代码换成下面这样的:<Window x:Class="WPF3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" DataContext="{Binding ElementName=button1, Path=Width}">
<Grid >
<Button Name="button1" Width="150" Content="Button" HorizontalAlignment="Left" Margin="57,26,0,0" VerticalAlignment="Top"/>
<Button Name="button2" Content="Button" HorizontalAlignment="Left" Margin="164,98,0,0" VerticalAlignment="Top" Width="{Binding}"/>
</Grid>
</Window>在这种情形下,仅仅是把UserControl换成了Window,结果button2的Width正确应用了button1的Width。
在Window标签中可以绑定,为什么在UserControl标签中就不行了呢?
在Window标签中可以绑定,为什么在UserControl标签中就不行了呢?
在Window标签中可以绑定,为什么在UserControl标签中就不行了呢?
在Window标签中可以绑定,为什么在UserControl标签中就不行了呢?