WPF(MVVM)中 工具窗口绑定主窗口ViewModle,

2017-09-06 19:23:30来源:CSDN作者:baidu_38131614人点击

分享

两个View 绑定一个ViewModle.

这样工具箱中的就不用在次实现,

我是在主窗口中开起的工具箱,软件一起到就开始,工具箱.xaml.cs

 public partial class MyToolBar : Window    {        private DispatcherTimer timer;            //通过传参两窗口同时绑定一个ViewMode        public MyToolBar( MainPageViewModel md)        {                        InitializeComponent();            Loaded += new RoutedEventHandler(ToolBar_Loaded);            this.DataContext = md;        }        /// <summary>        /// 工具箱永远置顶        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        void ToolBar_Loaded(object sender, RoutedEventArgs e)        {            //定时器            timer = new DispatcherTimer();            //1秒触发一次定时器            timer.Interval = TimeSpan.FromSeconds(1);            timer.Tick += timer1_Tick;            timer.Start();            //....            //timer.Stop();        }        private void timer1_Tick(object sender, EventArgs e)        {            //定时处理            this.Topmost = true;        }
定时器定时新,使工具窗口一直在最前

在主窗口ViewModle中

///工具栏        ///提升为公有方法,给热键(T)使用        /// </summary>        public  void ToolBarExecute(Window window)        {            if (toolbar == null)            {                toolflag = 1;                //传参绑定                toolbar = new MyToolBar( this);                //固定窗口位置                toolbar.WindowStartupLocation = WindowStartupLocation.Manual;                toolbar.Left = 0;                toolbar.Top = 80;                toolbar.Owner = window;                toolbar.Show();                win.Add(toolbar);            }            else if(toolbar !=null )            {                //再次点击关闭窗口                toolbar.Close();                toolbar = null;                toolflag = 0;                win.Remove(toolbar);            }        }
这样 工具箱中的按件就能与主窗口一样了

当然还能增加一些自己的功能。

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台