0

在其他编程语言(即Java)中,我之前在一个类中创建了一个窗口,然后让不同的类返回选项卡以添加到窗口中,这样当窗口的部分需要更新时,对象就不必是传递给一个主类以更新控件。

但是我是 .NET 的新手,我发现如果我创建一个MainWindow.xaml,控件仅在其类中可用。这是设计使然,还是有办法访问另一个类中的控件?

设计函数是否更好,以便它们返回更新控件所需的信息,或者在已经存在所需信息的类中访问控件?

4

2 回答 2

2

WPF 旨在使用绑定。您为表单提供一组数据(例如客户列表)并将控件(例如应该包含客户列表的组合框)绑定到它。

数据本身由表单中的函数操作,或者最好由控制器(包含单独逻辑的类)操作。

查找有关 WPF 中绑定的信息以及 MVVM 或 MVC 等通用 UI 模式,您将很快了解情况。

于 2013-07-25T13:00:57.000 回答
1

实际上,您不应该将代码放在代码隐藏中是一种不好的做法。

事实上,最流行的 WPF 编程方式是使用MVVM 模式,MVC 的一种变体。

在 MVVM 模式中,视图仅包含 XAML 或非常有限的代码来执行使用 WPF 的触发器和动画无法轻松完成的 UI 操作。

View 的数据由 ViewModel 类通过数据绑定提供。数据绑定由框架本身提供,并在 View 或 ViewModel 不知道对方的情况下来回传递数据。

每当 ViewModel 通过标准接口 (INotifyPropertyChanged) 通知 ViewModel 时,框架都会将 ViewModel 属性的更改传递给 View。

与其他 MVC 模式的主要区别在于 ViewModel 是底层业务或数据模型之上的抽象,专门为使视图的工作更容易而形成。

MVVM 没有标准实现。最流行的两个框架是MVVM LightCaliburn.Micro(我的偏好)。MVVM Light 更轻量级,而 Caliburn.Micro 更自以为是但更强大。

附带说明一下,MVVM 背后的想法已经在 Backbone.js 和 Knockout.js 等一些 Javascript 框架中找到了自己的方式

于 2013-07-25T13:04:20.303 回答