如果其中一个标签属性在wpf和vb.net中发生更改,则属性可以应用于所有标签

时间:2014-04-16 07:26:10

标签: wpf vb.net tags label

我有三个标签,我给它们标签值0到2,如果任何用户动态更改标签之一的属性然后在所有控件中更改reflate我有动态属性窗口,用户可以在其中更改样式。

我如何应用变化?

我在设计方面的标签属性如下:

 <Label Content="Kaju Kari" HorizontalAlignment="Left" HorizontalContentAlignment="Center"  Margin="498.821,180,0,0" VerticalAlignment="Top" Width="80" FontSize="16" Grid.Column="1" Tag="0"/>
  <Label Content="Paneer Kadai" HorizontalAlignment="Left" HorizontalContentAlignment="Center" Margin="493.821,213,0,0" VerticalAlignment="Top" Width="103" FontSize="16" Grid.Column="1" Tag="1"/>

1 个答案:

答案 0 :(得分:0)

您需要将标签绑定到ViewModel中更改的属性。

请注意,您的ViewModel需要实现接口INotifyPropertyChanged。除此之外,受影响的属性还需要向视图发布通知,以便发出信号,表示已更改,因此需要在视图中进行更新。

话虽这么说,你需要有2个属性,绑定到你的2个标签,以便存档反射。您只需要在第一个属性的setter方法中更改第二个属性。

这可能如下所示:

private string _Property1;
private string _Property2;

public string Property1
{
    set 
    { 
        if(_Property1) == value) return;
        _Property1 = value;
        _Property2 = value;
        OnPropertyChange(() => Property1);
    }
 }