Как не отображать ничего при null?
У меня есть коллекция с моделью:
private ObservableCollection<AccessPointTransmissionModel> AccessPointTransmission { get; } = new();
public class AccessPointTransmissionModel
{
public string? OnlyForTestType { get; set; }
public string? OnlyForTestDelivery { get; set; }
}
Когда приходит событие под названием "event", я добавляю все в OnlyForTestType, в другом случае - в OnlyForTestDelivery Т.е в каком-то случае, одно из полей, будет null.
Дальше мне необходимо все это вывести и я делаю это так:
<ListBox Items="{Binding AccessPointTransmission}" Grid.Column="2" Grid.Row="1">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<StackPanel Margin="5" Orientation="Horizontal">
<Image Source="../Assets/arrow_left_green.png" Height="20"/>
<TextBlock
Background="{Binding Converter={StaticResource AccessPointBackgroundConverter}}"
HorizontalAlignment="Left" Text="{Binding OnlyForTestDelivery}"/>
</StackPanel>
<StackPanel Margin="5" Orientation="Horizontal">
<Image Source="../Assets/arrow_right_blue.png" Height="20"/>
<TextBlock
Background="{Binding Converter={StaticResource AccessPointBackgroundConverter}}"
HorizontalAlignment="Left" Text="{Binding OnlyForTestType}"/>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Но столкнулся я с большой проблемой - данные дублируются. В коллекции 2 элемента, а рисуется 4 стрелки, с двумя пустыми полями:
<- command
<-
->
-> event
В чем может быть проблема и как ее решить?
Добавляю объекты вот так: ..
if ( context.Delivery.Header.Name.In( accessPointGenericEvents ) )
{
AccessPointTransmission.Insert( 0, new AccessPointTransmissionModel{Type = type} );
}
else
{
AccessPointTransmission.Insert( 0, new AccessPointTransmissionModel {Delivery = delivery});
}