내 WPF 프로젝트 중 하나에서 애니메이션을 시작하기 전에 동적으로 변경 될 수있는 타이밍 속성이있는 XAML의 애니메이션 스토리 보드를 만들었습니다. 코드의 값을 변경하는 방법이 필요했기 때문에 클래스의 속성에 바인딩했습니다.다른 여러 속성에 의존하는 속성에 xaml을 바인딩하는 좋은 방법이 있습니까?
public TimeSpan RaiseTime { get; set }
public TimeSpan FallTime { get; set; }
public TimeSpan TotalTime
{
get { return RaiseTime + FallTime; }
}
애니메이션은 첫번째 경우 :
기본적인 아이디어는이 애니메이션에 두 단계가 있고, 스토리 보드에서 I는 전체 애니메이션 시간이 소요 ObjectAnimationUsingKeyFrames을 사용하기 때문에 내가 그렇게 같은 특성을 가지고 있었다 이 속성에서 값을 올바르게 가져 오지만 동적으로 변경할 수 있으므로 값이 변경되었음을 XAML에 알리는 방법이 필요합니다.
RaiseTime 및 FallTime을 DependencyPropertys로 변환하면 변경 사항이 XAML 바인딩에 반영되지만, TotalTime은 어떨까요? 가치 자체가 없으므로 DP로 전환 할 수 없습니다.
Yesturday 나는 몇 시간 동안 무작위로 검색하고 시도해 보았습니다. 몇 가지 SO 질문과 블로그 게시물 덕분에 RaiseTime과 FallTime 및 IMultiValueConverter 모두에 멀티 바인딩을 사용하여 작업 할 수있었습니다. Bind an element to two sources http://blog.wpfwonderland.com/2010/04/15/simplify-your-binding-converter-with-a-custom-markup-extension/
제 질문은 : 이것을 수행하는 가장 좋은 방법입니까? 그것은 (나 최소한 atleast) 그런 간단한 작업을 보이지만 아직 일을하기 위해서는 너무 많은 코드가 필요합니다. TotalTime을 바인딩하고 업데이트를 XAML로 푸는 더 간단하고 간략한 방법이 있어야한다고 생각했지만 아직 찾지 못했습니다. 거기에, 아니면 그냥 꿈꿔?
IPropertyChanged를 구현하고 TotalTime에서 바인딩을 만들 수 있습니다. –