Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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和C的新手,我想了解如何从BL类中更新UI元素(以保持逻辑和UI之间的分离)。BL从C++网络组件获得定期更新,一旦新的参数出现,就应该更新表单。(我在msdn网站上读过,但我想看看一些具体的例子,以确保我的理解正确) < p>因为您从C++网络组件注释中得到定期更新,所以我假设您已经有一个系统来更新您的属性。我将在视图模型类中公开该属性,该类具有公共属性和ICOMMand 函数,专门用于提供所有需要的功能。将数据添加到视图,或UserControl_Wpf_Wpf Controls_Dispatcher - Fatal编程技术网

定期更新wpf标签 我是WPF和C的新手,我想了解如何从BL类中更新UI元素(以保持逻辑和UI之间的分离)。BL从C++网络组件获得定期更新,一旦新的参数出现,就应该更新表单。(我在msdn网站上读过,但我想看看一些具体的例子,以确保我的理解正确) < p>因为您从C++网络组件注释中得到定期更新,所以我假设您已经有一个系统来更新您的属性。我将在视图模型类中公开该属性,该类具有公共属性和ICOMMand 函数,专门用于提供所有需要的功能。将数据添加到视图,或UserControl

定期更新wpf标签 我是WPF和C的新手,我想了解如何从BL类中更新UI元素(以保持逻辑和UI之间的分离)。BL从C++网络组件获得定期更新,一旦新的参数出现,就应该更新表单。(我在msdn网站上读过,但我想看看一些具体的例子,以确保我的理解正确) < p>因为您从C++网络组件注释中得到定期更新,所以我假设您已经有一个系统来更新您的属性。我将在视图模型类中公开该属性,该类具有公共属性和ICOMMand 函数,专门用于提供所有需要的功能。将数据添加到视图,或UserControl,wpf,wpf-controls,dispatcher,Wpf,Wpf Controls,Dispatcher,老实说,我不会在一个业务类(取决于你所说的业务类)中有那个(或任何)功能…我个人会直接将它放在视图模型中,或者让一个管理器/服务类公开它 如果您坚持将其保留在原处,则必须在业务类中实现事件或委托,以便该类的用户可以在值更改时收到警报。然后,您只需从视图模型类中将处理程序附加到事件/委托,即可轻松升级只要实际属性发生更改,就可以删除暴露的属性 因此,在您的业务类中(我假设您的值是一个int,但如果它不正确,您可以更改它…原则是相同的): 然后在视图模型中: private YourBusiness

老实说,我不会在一个业务类(取决于你所说的业务类)中有那个(或任何)功能…我个人会直接将它放在视图模型中,或者让一个管理器/服务类公开它

如果您坚持将其保留在原处,则必须在业务类中实现
事件
委托
,以便该类的用户可以在值更改时收到警报。然后,您只需从视图模型类中将处理程序附加到
事件
/
委托
,即可轻松升级只要实际属性发生更改,就可以删除暴露的属性

因此,在您的业务类中(我假设您的值是一个
int
,但如果它不正确,您可以更改它…原则是相同的):

然后在视图模型中:

private YourBusinessClass instance = new YourBusinessClass();

public YourBusinessClass Instance 
{
    get { return instance; }
    set { instance = value; NotifyPropertyChanged("Instance"); }
}
附加处理程序:

instance.OnFieldUpdate += OnBusinessClassFieldUpdate;

...

public void OnBusinessClassFieldUpdate(int value)
{
    Instance = value;
}

现在,每当在业务类中更新字段时,视图模型(和数据绑定的UI控件)都将通过
委托自动更新。在执行此操作之前,您可能应该阅读UI设计模式,特别是MVVM,它“将逻辑和UI分离”。在WPF中,UI控件通常绑定到视图模型类中的属性,因此您应该熟悉。下一步是了解如何从中安全地更新绑定源属性。听起来有很多东西需要学习(事实上是这样的),但这是值得的。简单的方法是在调用中更新TextBlock或Label控件。
instance.OnFieldUpdate += OnBusinessClassFieldUpdate;

...

public void OnBusinessClassFieldUpdate(int value)
{
    Instance = value;
}