Это очень просто, если использовать шаблон MVVM. Добавьте свойство Opacity
к классу элементов и привяжите его к свойству Border.Opacity
:
<Border x:Name="brdItem" Opacity="{Binding Opacity}" MouseLeftButtonDown="brdItem_MouseLeftButtonDown">
<TextBlock x:Name="txtUsername" Text="{Binding Username}" />
</Border>
Класс товара:
public class ItemViewModel : INotifyPropertyChanged
{
public string Username { get; set; }
private double _opacity;
public double Opacity
{
get { return _opacity; }
set
{
_opacity = value;
RaisePropertyChanged("Opacity");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void RaisePropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
После этого ваше событие мыши будет выглядеть так:
* * 1010
Чтобы вернуться в исходное состояние, используйте следующий код:
this.ItemsList.ItemsSource.OfType<ItemViewModel>()
.ToList().ForEach(item => item.Opacity = 1);