当前位置: 首页 > 编程语言 > C#

WPF – 在XAML中绑定到后面的代码中创建的对象分享

时间:2023-04-11 10:47:14 C#

C#学习教程:WPF-在XAML中绑定到在代码隐藏中创建的对象例如:publicclassMyForm{privateMyComplexObjectcomplexObject;publicMyForm(){InitializeComponent();}publicOnButtonClick(objectsender,RoutedEventArgse){complexObject=newMyComplexObject();complexObject在单击按钮之前不会创建。但是单击按钮后,我希望绑定到complexObject.ID的文本框开始显示Id。如果可能,我想在XAML中执行此操作。这可以做到吗?如果是这样,如何?一种可能性是让您的XAML绑定到代码隐藏中的属性。如果复杂对象!=null,则该属性的getter将返回complexObject.ID。否则,它返回“default”,null或0或default(ID类型)。同样,如果complexObject也不为null,则属性的setter将被分配值complexObject.ID。publicintID{get{if(complexObject!=null)returncomplexObject.ID;返回0;//或null或一些适当的默认值}set{if(complexObject!=null)complexObject.ID=value;}}是的,这可以完成,绑定到您使用所需值更新的属性。我建议您查看MVVM模式(模型-视图-视图模型),使用WPF很好地构建它非常有用。观看此视频以获得精彩概述:MVVMvideo使用MMVM,您可以创建一个ViewModel类。通常,此视图被设置为视图的DataContext。这样做之后,您可以添加对类其他属性的动态引用,例如将文本字段绑定到包含Id和ComplexObject的某些属性。如果您的ViewModel类有一个属性ComplexObject,它又有一个属性ID,您只需要像这样绑定到对象:有了这个,您可以通过单击鼠标触发ComplexObject的创建,理想情况下,您应该将其设置为Setascommand捆绑。另请注意,ViewModel类(或持有ComplexObject的任何人)需要在设置对象时通知View。这可以通过使ComplexObject成为DependencyProperty或使持有该属性的类实现INotifyPropertyChanged接口来完成-假设它是PropertyChanged函数触发changed事件,我更喜欢后者,以上就是C#学习教程的全部内容:WPF-BindinginXAMLtoobjectscreatedinthecodebehind,如果对大家有用还需要了解更多关于C#学习教程,希望大家多多关注—本文采集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如有转载,转载请注明出处:

最新推荐
猜你喜欢