У меня есть простая форма, которая в виде динамического набора родительских меток (может быть от 1 до 10 меток), который обновляется по таймеру, если все хорошо, эти метки остаются зелеными, как:
![enter image description here](https://i.stack.imgur.com/ew5A6.png)
Если, однако, у одного из родителей изменилось состояние, я пытаюсь отобразить обидчика или детей и привести к чему-то вроде этого:
![enter image description here](https://i.stack.imgur.com/zT89N.png)
затем, когда статус возвращается в нормальное состояние, возвращается к исходному макету (как указано выше)
так что в настоящее время у меня есть такой вид:
<Grid>
<ItemsControl ItemsSource = "{Binding Path = CIs}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Label Content = "{Binding Path = NodeName, Mode = OneWay}"
Background = "{Binding Path = NodeStatus, Mode = OneWay}"
Tag="{Binding Path = Nodeid, Mode = OneWay}"
Foreground="White"
FontFamily="Arial Black"
HorizontalContentAlignment="Center"
BorderBrush="Black"
BorderThickness="1,1,1,1"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
модель представления, заполняющая представление простым добавлением:
if (Node.level == 3)
{
CIs.Add(new CI { NodeName = Node.name, NodeStatus = Node.status, Nodeid = Node.id });
}
и базовая модель:
public class CIModel {}
public class CI : INotifyPropertyChanged {
private string nodeName;
private string nodeStatus;
private string nodeid;
public string NodeName {
get {
return nodeName;
}
set {
if (nodeName != value) {
nodeName = value;
RaisePropertyChanged("NodeName");
}
}
}
public string Nodeid
{
get
{
return nodeid;
}
set
{
if (nodeid != value)
{
nodeid = value;
RaisePropertyChanged("Nodeid");
}
}
}
public string NodeStatus
{
get
{
return nodeStatus;
}
set
{
if (nodeStatus != value)
{
nodeStatus = value;
RaisePropertyChanged("NodeStatus");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string property) {
if (PropertyChanged != null) {
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
будет ли возможным создание дочернего представления при изменении статуса родителя? или я могу создать все родительские и дочерние элементы и переключать их видимость при изменении статуса?
Спасибо