![](/img/trans.png)
[英]how to open specific section in window on button click in wpf c#
[英]c# WPF Update Window on Button Click
我一直在使用Visual Studio中的c#(不是它的新手),并且一直在尝试使用WPF构建应用程序,而且我似乎无法弄清楚单击按钮时在我的环境中如何更新WPF视图。 我试图将代码剔除到相关信息
我的.cs文件中有以下情况
class Program
{
[STAThread]
static void Main(string[] args)
{
try
{
using (VMS.TPS.Common.Model.API.Application app = VMS.TPS.Common.Model.API.Application.CreateApplication("null", "null"))
{
Execute(app);
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
static void Execute(VMS.TPS.Common.Model.API.Application app)
{
Window window = new Window();
MainWindow mainWindow = new MainWindow(app);
mainWindow.evalButton.Click += Eval_Click //Button defined in .xaml
//Add a bunch of items
window.ShowDialog();
}
public static void Eval_Click(object sender, EventArgs e)
{
//need to add some more stuff to mainWindow and update window
}
}
我的MainWindow.xaml文件具有定义为.MainWindow的类,并且MainWindow.xaml.cs文件如下
public partial class MainWindow : UserControl
{
private VMS.TPS.Common.Model.API.Application _application;
public MainWindow(VMS.TPS.Common.Model.API.Application Application)
{
_application = Application;
InitializeComponent();
}
}
如果要在单击按钮时更新View
图层,则可以重新分配DataContext
。 例如:
public static void Eval_Click(object sender, EventArgs e)
{
this.DataContext = new MyDataContext();
}
但是,如果您遵循MVVM模式,则您的DataContext
应该继承自INotifyPropertyChanged
接口,您也可以仅调用PropertyChangedEventHandler
事件来更新View
层中的特定绑定。 例如:
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public void UpdateView()
{
NotifyPropertyChanged("foo");
NotifyPropertyChanged("bar");
}
...
public static void Eval_Click(object sender, EventArgs e)
{
(this.DataContext as MyDataContext).UpdateView();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.