Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF用户控件绑定失败_Wpf_Xaml_Data Binding_User Controls - Fatal编程技术网

WPF用户控件绑定失败

WPF用户控件绑定失败,wpf,xaml,data-binding,user-controls,Wpf,Xaml,Data Binding,User Controls,我偶然发现了一个问题,希望有人能帮我解决它 我有一个带有几个用户控件的程序集。我想在运行时从该外部程序集中加载一个UserControl,并在稍后拍摄它的屏幕截图,而不在屏幕上显示它 usercontrolxaml 视图模型 公共类TestClass:INotifyPropertyChanged { 私有字符串_abc=初始值; 公共事件属性更改事件处理程序属性更改; 公共字符串ABC { 收到 { 返回abc; } 设置 { 如果值==\u abc { 回来 } _abc=价值; 关于财产的变

我偶然发现了一个问题,希望有人能帮我解决它

我有一个带有几个用户控件的程序集。我想在运行时从该外部程序集中加载一个UserControl,并在稍后拍摄它的屏幕截图,而不在屏幕上显示它

usercontrolxaml

视图模型

公共类TestClass:INotifyPropertyChanged { 私有字符串_abc=初始值; 公共事件属性更改事件处理程序属性更改; 公共字符串ABC { 收到 { 返回abc; } 设置 { 如果值==\u abc { 回来 } _abc=价值; 关于财产的变更1abc; } } 受保护的虚拟void OnPropertyChanged1string propertyName { var handler=PropertyChanged; 如果处理程序!=null { handlerthis,新属性ChangedEventArgsPropertyName; } } } 引起头痛的代码片段

Assembly.LoadFromMyAssembly.dll; var uri=新uri@/MyAssembly;component/Test.xaml,UriKind.Relative; var view=ControlApplication.LoadComponenturi; 视图宽度=800; 视图。高度=600; view.RenderSize=新尺寸800600; view.Background=画笔.White; var viewModel=新的TestClass; view.DataContext=viewModel; viewModel.ABC=7; 但是,无论是设置DataContext还是更改ABC属性TD1内容都没有改变。如果我使用调试器查看它,它总是保持为null


在本例中,如何根据从外部程序集加载的xaml强制.Net绑定ABC?

好的,我找到了使绑定工作的方法。只需在视图上调用UpdateLayout

Assembly.LoadFromMyAssembly.dll; var uri=新uri@/MyAssembly;component/Test.xaml,UriKind.Relative; var view=ControlApplication.LoadComponenturi; 视图宽度=800; 视图。高度=600; view.RenderSize=新尺寸800600; view.Background=画笔.White; var viewModel=新的TestClass; view.DataContext=viewModel; viewModel.ABC=7; view.UpdateLayout;
它只与@nbulba一起工作吗?它是默认模板的标准按钮吗?如果否,并且您设置Content=ABC,它是否显示ABC?@dkozl是的,如果我保留Content=ABC,它将按预期工作,因为实际上不涉及任何绑定。是的,它是一个标准按钮。@不,它不能只使用文本框。