wabbajack/Wabbajack/Views/Common/DetailImageView.xaml.cs

81 lines
3.4 KiB
C#
Raw Normal View History

using ReactiveUI;
2019-11-09 01:53:32 +00:00
using System.Linq;
using System.Reactive.Linq;
2019-11-09 01:53:32 +00:00
using System.Windows;
using System.Windows.Media;
namespace Wabbajack
{
/// <summary>
/// Interaction logic for DetailImageView.xaml
/// </summary>
public partial class DetailImageView : UserControlRx
2019-11-09 01:53:32 +00:00
{
public ImageSource Image
{
get => (ImageSource)GetValue(ImageProperty);
set => SetValue(ImageProperty, value);
}
public static readonly DependencyProperty ImageProperty = DependencyProperty.Register(nameof(Image), typeof(ImageSource), typeof(DetailImageView),
new FrameworkPropertyMetadata(default(ImageSource)));
public ImageSource Badge
{
get => (ImageSource)GetValue(BadgeProperty);
set => SetValue(BadgeProperty, value);
}
public static readonly DependencyProperty BadgeProperty = DependencyProperty.Register(nameof(Badge), typeof(ImageSource), typeof(DetailImageView),
new FrameworkPropertyMetadata(default(ImageSource)));
public string Title
{
get => (string)GetValue(TitleProperty);
set => SetValue(TitleProperty, value);
}
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register(nameof(Title), typeof(string), typeof(DetailImageView),
new FrameworkPropertyMetadata(default(string), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, WireNotifyPropertyChanged));
2019-11-09 01:53:32 +00:00
public string Author
{
get => (string)GetValue(AuthorProperty);
set => SetValue(AuthorProperty, value);
}
public static readonly DependencyProperty AuthorProperty = DependencyProperty.Register(nameof(Author), typeof(string), typeof(DetailImageView),
new FrameworkPropertyMetadata(default(string), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, WireNotifyPropertyChanged));
2019-11-09 01:53:32 +00:00
public string Description
{
get => (string)GetValue(DescriptionProperty);
set => SetValue(DescriptionProperty, value);
}
public static readonly DependencyProperty DescriptionProperty = DependencyProperty.Register(nameof(Description), typeof(string), typeof(DetailImageView),
new FrameworkPropertyMetadata(default(string), FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, WireNotifyPropertyChanged));
2019-11-21 15:45:00 +00:00
private readonly ObservableAsPropertyHelper<bool> _showAuthor;
public bool ShowAuthor => _showAuthor.Value;
2019-11-21 15:45:00 +00:00
private readonly ObservableAsPropertyHelper<bool> _showDescription;
public bool ShowDescription => _showDescription.Value;
2019-11-21 15:45:00 +00:00
private readonly ObservableAsPropertyHelper<bool> _showTitle;
public bool ShowTitle => _showTitle.Value;
2019-11-09 01:53:32 +00:00
public DetailImageView()
{
InitializeComponent();
2019-11-21 15:45:00 +00:00
_showAuthor = this.WhenAny(x => x.Author)
.Select(x => !string.IsNullOrWhiteSpace(x))
2019-11-21 15:04:33 +00:00
.ToProperty(this, nameof(ShowAuthor));
2019-11-21 15:45:00 +00:00
_showDescription = this.WhenAny(x => x.Description)
.Select(x => !string.IsNullOrWhiteSpace(x))
2019-11-21 15:04:33 +00:00
.ToProperty(this, nameof(ShowDescription));
2019-11-21 15:45:00 +00:00
_showTitle = this.WhenAny(x => x.Title)
.Select(x => !string.IsNullOrWhiteSpace(x))
2019-11-21 15:04:33 +00:00
.ToProperty(this, nameof(ShowTitle));
2019-11-09 01:53:32 +00:00
}
}
}