Я создал UserControl
, который использует несколько DependencyProperties
. Когда у меня есть только один экземпляр UserControl
, все работает так, как ожидалось. Однако, если я создаю несколько экземпляров объекта, работает только первый экземпляр (обратите внимание: ошибок не возникает). Единственное, о чем я могу думать, это то, что наличие нескольких экземпляров DependencyProperty
невозможно. Это верно? Если да, есть ли альтернативы/обходные пути для этого?Несколько экземпляров UserControl с DependencyProperty
Вот пример того, как я установки в DependencyProperties
: XML
public int Value
{
get { return (int)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
public static DependencyProperty ValueProperty=
DependencyProperty.Register("Value", typeof(int), typeof(DataBar), new PropertyMetadata(0));
для UserControl:
x:Name="DataBarUserControl">
<Grid>
<Rectangle Name="BackgroundRec" Height="{Binding Height, ElementName=DataBarUserControl}" Width="{Binding Width, ElementName=DataBarUserControl}"
Fill="{Binding BarBackground, ElementName=DataBarUserControl}" HorizontalAlignment="Stretch"
VerticalAlignment="Top">
</Rectangle>
<Rectangle Name="ShadowRec" Height="{Binding Height, ElementName=DataBarUserControl}" Fill="{Binding BarBackground, ElementName=DataBarUserControl}"
HorizontalAlignment="Left" Opacity="0.25"
Stroke="{Binding BarBackground, ElementName=DataBarUserControl}">
</Rectangle>
<Rectangle Name="DataRec" Height="{Binding Height, ElementName=DataBarUserControl}" Fill="{Binding BarForeground, ElementName=DataBarUserControl}"
HorizontalAlignment="Left">
</Rectangle>
</Grid>
ShadowRec & DataRec не отображаются вообще.
Update 1:
Я думаю, я нашел причину проблемы. В бэкэнд для UserControl я изменяю ShadowRec & DataRec, которые хранятся как частные статические переменные. Когда я отключу этот раздел кода, проблема исчезнет. Не уверен, что захвачен неправильный экземпляр, или если есть более конкретный способ, я должен хранить экземпляры.
привет, пожалуйста, разместите свой xaml, где пользовательские элементы управления. – SWilko
Отправил XAML более подробную информацию о проблеме. – TheMoonbeam
ShadowRec и DataRec находятся за BackgroundRec. Поместите Rectangles в StackPanel, и вы увидите их. – SWilko