| 

.NET C# Java Javascript Exception

2
Ich habe mir ein CustomControl erstellt, besser gesagt ein UserControl vom Typen Popup. In diesem UserControl habe ich ein DependencyProperty vom Type ObservableCollection implementiert:

public static readonly DependencyProperty ButtonCollectionProperty =
DependencyProperty.Register("ButtonCollection", typeof(ObservableCollection<Control>),
typeof(MyOwnPopup),
new PropertyMetadata(new ObservableCollection<Control>(), OnItemsChanged));

public ObservableCollection<Control> ButtonCollection
{
get { return (ObservableCollection<Control>)GetValue(ButtonCollectionProperty); }
set { SetValue(ButtonCollectionProperty, value); }
}


Soweit so gut. Funktioniert auch.
Wenn ich nun mein Control mehrfach einsetze, hab ich das Problem, das die ButtonCollection von jeder Verwendung aus genutzt wird, wo ich den Eindruck habe, das hier die selbe Instanz verwendet wird

<Controls:MyOwnPopup x:Name="popUp1" PlacementTarget="{Binding ElementName=btn1}">
<Controls:MyOwnPopup.ButtonCollection>
<Button Content="Frage 1" Style="{DynamicResource SimpleImageButton}" />
<Button Content="Frage 2" Style="{DynamicResource SimpleImageButton}" />
</Controls:MyOwnPopup.ButtonCollection>
</Controls:MyOwnPopup>


Das heisst, verwende ich den o.g. XAMLCode zweimal, werden 4 Items der ButtonCollection hinzugefügt.

Was mache ich falsch?
News:
26.11.2011
Mario Priebe 6,0k 3 9
1 Antwort
2
Wenn ein Dependency Property abgefragt wurde und noch kein Wert gesetzt wurde, wird der Default Wert verwendet.

Allerdings nicht geklont, weshalb deine zwei Instanzen die selbe Collection erhalten. Der Workaround ist ziemlich einfach, initialiere das Property einfach im Konstruktor.
26.11.2011
sebastianstehle 444 6
Perfekt Danke!
Mario Priebe 26.11.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH