Как проверять поле модели в xaml?
У меня есть коллекция:
public ObservableCollection<AccessPointTransmissionModel> AccessPointTransmission { get; } = new();
Ее модель:
public class AccessPointTransmissionModel
{
public MessageType Type { get; set; }
public LocalTime Timestamp { get; set; }
public MqttDelivery? Delivery { get; set; }
public string? TypeName { get; set; }
}
А вот ListBoх в xaml, к которому все биндится:
<ListBox Items="{Binding AccessPointTransmission}"/>
Мне необходимо проверять Type в коллекции. Если Type будет равен "Event", то этот элемент должен быть слева, иначе справа Ну т.е я каким-то образом должен применить HorizontalAlignment, в зависимости от Type. Как это сделать?
update
Попробовал написать конвертер, но не особо понятно, как это применить
public object? Convert( object? value, Type targetType, object? parameter, CultureInfo culture )
=> ( MessageType ) value == MessageType.Command
? HorizontalAlignment.Right
: HorizontalAlignment.Left;
Ответы (1 шт):
Автор решения: penancewarrior
→ Ссылка
все оказалось как-то проще, сделал так:
<ListBox Items="{Binding AccessPointTransmission}" Grid.Column="0" Grid.Row="1">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding TypeName}" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding Delivery.Header.Name}" HorizontalAlignment="Right"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>