DevExpress XAF Dinamik Caption Değişimi

Bu yazımızda çalışma ortamında masaüstü ve web uygulamada property caption text özelliklerini gelen değerlere göre nasıl değiştireceğimizi örnekleyeceğiz. Uygulama.Module.Web ve Uygulama.Module.Win projelerinde Controller klasörünün altına DetailViewObjectController adında bir class oluşturuyoruz ve ObjectViewController<DetailView,Ornek> şekilde miras alarak projelerimizde oluşumu yaptıktan sonra

Win için

    public class OrnekObjectViewController : ObjectViewController<DetailView,Ornek>
    {
        public OrnekObjectViewController ()
        {
            TargetObjectType = typeof(Ornek);
        }
        protected override void OnActivated()
        {
            base.OnActivated();
            ObjectSpace.ObjectChanged += ObjectSpace_ObjectChanged;
        }

        private void ObjectSpace_ObjectChanged(object sender, ObjectChangedEventArgs e)
        {
            if (ViewCurrentObject != null)
            {
                if (e.PropertyName == "ModelTuru")
                {
                    WinPropertyEditor olcu1 = ((DetailView)View).FindItem("Olcu1") as WinPropertyEditor;
                    WinPropertyEditor olcu2 = ((DetailView)View).FindItem("Olcu2") as WinPropertyEditor;
                    switch (ViewCurrentObject.ModelTuru.Mid)
                    {
                        case 1:
                            olcu1.Control.Text = "Deneme";
                            olcu2.Control.Text = "Deneme";
                            break;
                        case 2:
                            olcu1.Control.Text = "Deneme";
                            olcu2.Control.Text = "Deneme";
                            break;
                    }
                }
            }
        }

        protected override void OnDeactivated()
        {
            base.OnDeactivated();
            ObjectSpace.ObjectChanged -= ObjectSpace_ObjectChanged;
        }
    }

Web için :

    public partial class ArizaDetaylarObjectViewController : ObjectViewController<DetailView, ArizaDetaylar>
    {
        public ArizaDetaylarObjectViewController()
        {
            TargetObjectType = typeof(ArizaDetaylar);
            // Target required Views (via the TargetXXX properties) and create their Actions.
        }
        protected override void OnActivated()
        {
            base.OnActivated();
            ObjectSpace.ObjectChanged += ObjectSpace_ObjectChanged;

        }

        private void ObjectSpace_ObjectChanged(object sender, ObjectChangedEventArgs e)
        {
            if (ViewCurrentObject != null)
            {
                if (e.PropertyName == "ModelTuru")
                {
                    ViewItem olcu1 = ((DetailView)View).FindItem("Olcu1");
                    ViewItem olcu2 = ((DetailView)View).FindItem("Olcu2");
                    switch (ViewCurrentObject.ModelTuru.Mid)
                    {
                        case 1:
                            olcu1.Caption = "Deneme";
                            olcu2.Caption = "Deneme";
                            break;
                        case 2:
                            //((LayoutControl)View.Control).GetItemByControl(olcu1.Control.t)
                            SetItemCaption(olcu1, "Deneme");
                            SetItemCaption(olcu2, "Deneme");
                            break;
                    }
                }
            }
        }

        private void SetItemCaption(ViewItem viewItem, string caption)
        {
            ((System.Web.UI.WebControls.Literal)(((DevExpress.ExpressApp.Web.Layout.LayoutItemTemplateContainer)((System.Web.UI.Control)viewItem.Control).NamingContainer).CaptionControl.Controls[0])).Text = caption;
        }

        protected override void OnDeactivated()
        {
            base.OnDeactivated();
            ObjectSpace.ObjectChanged -= ObjectSpace_ObjectChanged;
        }
    }

yaptığımızda RunTime ortamda caption seçilen değere göre değiştirdiğini görebiliriz.

Bir yanıt yazın