WPF 利用元素绑定实现在一个窗口更新另一个窗口中Label的Content

首先创建一个数据类,我在里面放了一个string类型的counter

public class Data: INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        private string counter;
        public string Counter
        {
            get { return counter; }
            set
            {
                //值改变
                if (counter != value)
                {
                    counter = value;
                    //触发改变事件
                    if (PropertyChanged != null)
                    {
                        //通知前台UI更新
                        PropertyChanged(this,new PropertyChangedEventArgs("Counter"));
                    }
                }

            }
        }
    }

然后在前台绑定,我把Label的Content和counter绑定,这样当counter的值有所变化是,label.Content也会跟着一起变

<Window.Resources>
        <local:Data x:Key="LabelData"/>
    </Window.Resources>
    <Grid DataContext="{StaticResource ResourceKey=LabelData}">
        <Label x:Name="label" Content="{Binding Path=Counter}" HorizontalAlignment="Left"  Margin="150,20,30,40" VerticalAlignment="Center"/>
        <Label x:Name="label1" Content="Counter:" HorizontalAlignment="Left" Margin="50,20,30,40" VerticalAlignment="Center"/>
    </Grid>
 
 

点击Main Window的Start按钮后,后台的countr就开始自增,Timer的Counter的值也会随着counter的改变而改变。

Demo:

WPFElementBindingDemo



猜你喜欢

转载自blog.csdn.net/hk_jy/article/details/80287185
今日推荐