Я просто надеялся, что вы сможете помочь заполнить пробел в моих знаниях WPF.Событие Trigger не работает на раскадровке
(пожалуйста, простите родовое именование, не уверен, если это поможет)
Я пользовательский объект, MyObject, который реализует INotifyPropertyChanged. Он имеет свойство MyCustomProperty, как указано ниже;
public int MyCustomProperty
{
get { return this._myCustomProperty; }
set
{
if (this._myCustomProperty == value)
return;
this._myCustomProperty= value;
OnPropertyChanged("MyCustomProperty");
}
}
Все это работает. В моем приложении WPF у меня есть эти 3 функции;
private void DoStuff()
{
AddItemsToCanvas();
ChangeValues();
}
private void AddItemsToCanvas()
{
DataTemplate dt = (DataTemplate)FindResource("myDataTemplate");
foreach (MyObject temp in ListOfMyObjects)
{
ContentControl cc = new ContentControl();
cc.ContentTemplate = dt;
cc.Content = temp;
myCanvas.Children.Add(cc);
}
}
private void ChangeValues()
{
// this simply changes the MyCustomPropery in each of the objects
}
DataTemplate выглядит так;
<DataTemplate x:Key="myDataTemplate">
<Canvas>
<TextBlock Name="tb_debug" Text="{Binding Path=MyCustomProperty, NotifyOnTargetUpdated=True}">
<TextBlock.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="tb_debug" Storyboard.TargetProperty="(Canvas.Top)" From="0" To="350" Duration="0:0:1.6" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>
</Canvas>
</DataTemplate>
Он просто перемещает текстовое поле сверху вниз, когда изменяется MyCustomProperty.
При загрузке UserControl я вызываю как AddItemsToCanvas(), так и ChangeValues (). Значение Text обновляется и отображает правильное значение, но Trigger не срабатывает (т. Е. TextBox не перемещается). В любое время после этого, когда я вызываю ChangeValues (), меняются текстовые обновления и текстовое поле.
Почему EventTrigger не работает в это начальное время? заблаговременно
Можете ли вы предоставить небольшой, но * полный * рабочий пример этой проблемы? Это будет намного проще, чем пытаться выяснить проблему из бит и частей ... – Blachshma
Я не уверен, могу ли я - этот UserControl имеет около ~ 3000 строк кода, плюс сам класс, который примерно такой же , – ausgeorge