如何在代码隐藏中使用WPF XAML中的属性

时间:2017-11-02 09:41:53

标签: c# .net wpf xaml variables

我只想从xaml.cs中获取变量,将其用于我的xaml: 这是我的xaml.cs:

using System;
using System.Globalization;

namespace Calendar
{
    public partial class MainWindow : Window
    {
        private static CultureInfo french = 
            CultureInfo.GetCultureInfo("fr-FR");

        private static string nowStr =
            DateTime.Now.ToString(French);

        public static string NowStr { get => nowStr; set => nowStr = value; }
        public static CultureInfo French { get => french; set => french = value; }
        public MainWindow()
        {   
            InitializeComponent();

        }
    }
}

这是我的xaml:

<Window x:Class="Calendar.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Calendar"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid RenderTransformOrigin="0.425,0.522">
        <TextBlock Text="{Binding Path=MainWindow.nowStr}"></TextBlock>
    </Grid>
</Window>

所以,我想让我的“nowStr”在我的MainWindow中显示它,但我真的不明白它是如何工作的,在这里我使用绑定但没有任何反应,我使用了本地:但仍然没有。我有点困惑,因为我在堆栈中搜索答案,但我尝试了响应,没有任何效果。 如果你能解释我如何将我的nowStr带到我的xaml,那将是优雅的。

1 个答案:

答案 0 :(得分:1)

在.cs文件的构造函数中添加DataContext = this; 现在在TextBlock中使用Text="{Binding NowStr}"

在您的INotifyPropertyChanged课程和您的媒体资源的设置者中实施MainWindow通知

为什么要创建静态属性?