using System.Linq; using System.Windows; using System.Windows.Controls; namespace Dominion.NET_WPF.Controls { /// /// Interaction logic for ucCardConstraints.xaml /// public partial class ucCardConstraints : UserControl { public static readonly DependencyProperty ConstraintCollectionProperty = DependencyProperty.Register("ConstraintCollection", typeof(DominionBase.Cards.ConstraintCollection), typeof(ucCardConstraints), new PropertyMetadata(new DominionBase.Cards.ConstraintCollection())); public DominionBase.Cards.ConstraintCollection ConstraintCollection { get { return (DominionBase.Cards.ConstraintCollection)GetValue(ConstraintCollectionProperty); } set { SetValue(ConstraintCollectionProperty, value); foreach (var constraint in value) icConstraints.Items.Add(new ucCardConstraint { DisplayObjects = DisplayObjects, Constraint = constraint }); } } public static readonly DependencyProperty DisplayObjectsProperty = DependencyProperty.Register("DisplayObjects", typeof(DisplayObjects), typeof(ucCardConstraints), new PropertyMetadata(new DisplayObjects())); public DisplayObjects DisplayObjects { get { return (DisplayObjects)GetValue(DisplayObjectsProperty); } set { SetValue(DisplayObjectsProperty, value); foreach (var constraint in icConstraints.Items.OfType()) constraint.DisplayObjects = value; } } public ucCardConstraints() { InitializeComponent(); } private void spConstraints_RemoveClick(object sender, RoutedEventArgs e) { ConstraintCollection.Remove((e.OriginalSource as ucCardConstraint)?.Constraint); icConstraints.Items.Remove((ucCardConstraint) e.OriginalSource); } private void bAddNew_Click(object sender, RoutedEventArgs e) { var constraint = new DominionBase.Cards.Constraint(); ConstraintCollection.Add(constraint); icConstraints.Items.Add(new ucCardConstraint { DisplayObjects = DisplayObjects, Constraint = constraint }); } } }