Во вью-модели есть вот такое свойство:
public Visibility AvatarsVisibility { get => _avatarsVisibility; set => SetProperty(ref _avatarsVisibility, value); }
private Visibility _avatarsVisibility = Visibility.Collapsed;
Привязано так:
<Window.DataContext>
<vm:ViewModelRoom />
</Window.DataContext>
...
<GridViewColumn Header="Name / Avatar" Width="120">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<Border BorderBrush="Gray" BorderThickness="1" Visibility="{Binding AvatarsVisibility}">
<Image Width="90" Height="90" Source="{Binding AvatarImageUrl, TargetNullValue={x:Null}}" />
</Border>
<TextBlock HorizontalAlignment="Center" Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
То есть, одно это свойство должно отвечать за показ всех аватаров в списке. Но это не работает, если в модели нет такого же свойства. Возникает ошибка:
System.Windows.Data Error: 40 : BindingExpression path error: 'AvatarsVisibility' property not found on 'object' ''ModelRoom' (HashCode=40372317)'. BindingExpression:Path=AvatarsVisibility; DataItem='ModelRoom' (HashCode=40372317); target element is 'Border' (Name=''); target property is 'Visibility' (type 'Visibility')
То есть, MVVM хочет, чтобы была возможность выкл/вкл аватара для каждого юзера, а не для всех сразу. Но я этого не хочу. Как быть?