Member 12823969 Ответов: 1

Wpf выпускает код привязки позади с помощью xaml


Я хочу показать это на странице WPF о том, что это код позади. Пожалуйста, может ли кто-нибудь сказать, как лучше всего это сделать? Спасибо

<pre> public partial class About : Page
    {
        public About()
        {
            InitializeComponent();
            //About.Title = String.Format("About {0}", AssemblyTitle);
            //string Title = String.Format("About {0}", AssemblyTitle);
            //this.lblTitle.Text = String.Format("About {0}", AssemblyVersion);
        }

        #region Assembly Attribute Accessors

        public string AssemblyTitle
        {
            get
            {
                object[] attrinbutes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false);

                if(attrinbutes.Length > 0)
                {
                    AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attrinbutes[0];
                }

                return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
            }
        }
        
        public string AssemblyVersion
        {
            get
            {
                return Assembly.GetExecutingAssembly().GetName().Version.ToString();
            }
        }

        public string AssemblyDescription
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);

                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyDescriptionAttribute)attributes[0]).Description;
            }
        }

        public string AssemblyProduct
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyProductAttribute)attributes[0]).Product;
            }
        }

        public string AssemblyCopyright
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
            }
        }

        public string AssemblyCompany
        {
            get
            {
                object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false);
                if (attributes.Length == 0)
                {
                    return "";
                }
                return ((AssemblyCompanyAttribute)attributes[0]).Company;
            }
        }
        #endregion
    }


Что я уже пробовал:

Стек и другие интернет-вещи

Gerry Schmitz

Реализуйте интерфейс INotifyPropertyChanged. Установите DataContext. Вызов на объект недвижимости изменен. Используйте свойства вместо тяжелых геттеров.

1 Ответов

Рейтинг:
12

johannesnestler

просто установите DataContext страницы на себя (DataContext = this;), используйте {Binding AssemblyCopyright} и т. д. в XAML страницы. Что не будет работать, так это двусторонняя привязка, но, похоже, вы все равно не хотите редактировать эти поля. Так что вы можете заставить это работать в считанные секунды.


Member 12823969

Я реализовал интерфейс INotifyPropertyChanged. Установите DataContext. Вызов на объект недвижимости изменен. а потом Usercontrol.Ресурсы, но ваш DataContext и Biniding также включены, так что спасибо.