Newer
Older
Correlator / PipeGallery / View / SelectPipeMaterialView.xaml.cs
using PipeGallery.Correlator;
using PipeGallery.Manage;
using PipeGallery.Model;
using PipeGallery.ViewModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace PipeGallery.View
{
    /// <summary>
    /// SelectPipeMaterialView.xaml 的交互逻辑
    /// </summary>
    public partial class SelectPipeMaterialView : UserControl
    {
        public SelectPipeMaterialView()
        {
            InitializeComponent();
            SelectPipeMaterialViewModel.Instance.InitData();
            PipeGallery.Correlator.PipeMaterial.Init();
            DataFactory.InitalCustomizedPipeMaterialData();

            this.DataContext = SelectPipeMaterialViewModel.Instance;
            this.Loaded += SelectPipeMaterialView_Loaded;
            this.btnReturn.Click += btnReturn_Click;
            this.btnEditName.Click += btnEditName_Click;
            this.btnEditSoundSpeed.Click += btnEditSoundSpeed_Click;
        }

        void btnEditSoundSpeed_Click(object sender, RoutedEventArgs e)
        {
            Border bdr = this.Parent as Border;
            if (bdr != null)
            {
                bdr.Child = null;
            }

            foreach (var v in SelectPipeMaterialViewModel.Instance.PipeMaterialInfos)
            {
                if (v.IsSelected)
                {
                    SoundSpeedView soundSpeedEditView = new SoundSpeedView(v.ID);
                    Global.GetMainView().bdrMain.Child = soundSpeedEditView; ;
                }
            }
            
        }

        void btnEditName_Click(object sender, RoutedEventArgs e)
        {
            foreach (var v in SelectPipeMaterialViewModel.Instance.PipeMaterialInfos)
            {
                if (v.IsSelected)
                {
                    EditNameView editNameView = new EditNameView(v.ID,v.Name);
                    Global.GetMainView().bdrPreposition.Child = editNameView;   
                }
            }       
        }

        void btnReturn_Click(object sender, RoutedEventArgs e)
        {
            CalculteSatus.MaterialDatas.Clear();

            Border bdr = this.Parent as Border;
            if (bdr != null)
            {
                bdr.Child = null;
            }
        }

        void SelectPipeMaterialView_Loaded(object sender, RoutedEventArgs e)
        {
            String txt = "    ";
            foreach (PipeMaterialData pipeMaterialData in CalculteSatus.MaterialDatas)
            {
                txt += pipeMaterialData.Diameter + "mm," + pipeMaterialData.Length + "m" + pipeMaterialData.Material + "\r    ";
            }

            this.txtPipeLine.Text = txt;
        }

        private void rb_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            RadioButton radioButton = sender as RadioButton;
            if (radioButton != null)
            {
                Border bdr = this.Parent as Border;
                if (bdr != null)
                {
                    PipeMaterialInfo pipeMaterialInfo = radioButton.DataContext as PipeMaterialInfo;
                    //这里可获取管道材质,传递给SelectPipeRangeView   
                    if (pipeMaterialInfo != null)
                    {
                        CalculteSatus.MaterialData = pipeMaterialInfo.Name;
                        //SelectPipeRangeView selectPipeRangeView = new SelectPipeRangeView(pipeMaterialInfo.Name);
                        //bdr.Child = selectPipeRangeView;

                        PipeDiameterEditView pipeDiameterEditView = new PipeDiameterEditView(pipeMaterialInfo.Name);
                        bdr.Child = pipeDiameterEditView;
                    }
                    
                }
            }
        }

        private void rb_Click(object sender, RoutedEventArgs e)
        {
            RadioButton rb = sender as RadioButton;
            if (rb != null)
            {
                PipeMaterialInfo pMaterialInfo = rb.DataContext as PipeMaterialInfo;
                if (pMaterialInfo != null)
                {
                    if (pMaterialInfo.IsEnabled)
                        btnEditName.IsEnabled = true;
                    else
                        btnEditName.IsEnabled = false;
                }
            }
        }
    }
}