이름이 생성 된 스토리 보드를 찾는 데 문제가 있습니다. 이 코드는 여러 번 호출되고 반환 값은 비동기이기 때문에 클래스 변수를 사용할 수 없습니다.동적으로 생성 된 Storyboard 인스턴스 찾기 (WPF)
당신은 자세한 내용은 내 다른 질문을 볼 수 Here
내 코드 :
private void refreshPostIt(int index)
{
Button btn = // Button to rotate
Storyboard sb = new Storyboard();
sb.Name = "sb" + postItIndex;
Storyboard.SetTarget(rotate, btn);
Storyboard.SetTargetName(rotate, btn.Name);
Storyboard.SetTargetProperty(rotate, new PropertyPath("(UIElement.RenderTransform).(RotateTransform.Angle)"));
sb.Children.Add(rotate);
sb.Begin(btn, true);
// Asynchronous call
BackgroundWorker bgw = new BackgroundWorker();
bgw.DoWork += new DoWorkEventHandler(bgw_DoWork);
bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgw_RunWorkerCompleted);
bgw.RunWorkerAsync(postItIndex);
}
private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
int postItIndex = // Retrieved from e.Arguments
Button btn = // Find the Button thanks to the postItIndex
Storyboard sb = // Here is my problem, how to find the Storyboard
if (sb != null)
{
// Stop rotation
//sb.Stop(btn);
}
}
MVVM을 사용하지 않기 때문에이 문제가 발생합니다. viewmodel에 "postIt"모음이있는 경우 각각에 IsRefreshing 속성이 있습니다. BeginStoryBoard와 Stop을 사용할 수 있습니다. xaml을 설정하는 방법을 설명하는 답글을 게시 할 예정이지만 데이터 수집을 위해 컬렉션과 UI를 적용하는 방법은 ... –