다음은 WPF에서 복잡한 컨트롤을 개발할 때 자주 겪게되는 문제입니다.WPF 바인딩을 여러 단계로 사용하는 방법
부모의 여러 수준까지 일부 속성을 바인딩하고 싶습니다.
Value="{Binding PropertyToBind, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
그러나이와
, 당신은 그냥 직접 부모에 결합 할 수있다, 나는 4 단계가 ... 그래서 마지막에 결합 4를 만든 :나는 현재 RelativeSource 및 TemplatedParent로 이것을 사용하고 있습니다 좋은 가치에 묶어 라.
나는 내 조이스틱 제어 내 첫 번째 수준, 예를 들어
... 그들은 복잡한 컨트롤입니다, 개체의 제 4 단계를 제거 할 수 없습니다. 내 조이스틱에서 슬라이더 컨트롤 (2 레벨)을 위아래로 움직입니다. 내 슬라이더에는 Button (3 레벨)이 있습니다. 내 버튼에는 레벨 1 (조이스틱)의 속성에 바인딩하려는 텍스트 (네 번째 레벨)가 있습니다.
내가하는 일은 단추의 속성에 텍스트를 바인딩 한 다음 단추의 속성을 슬라이더 등의 속성에 바인딩하는 것입니다. 조이스틱. 때로는 바인딩 할 수있는 속성을 추가하여 사용자 지정 컨트롤을 만들어야합니다.
이, 그냥 예를 들어 내 시나리오입니다하지 않습니다 (예이 우리가 아마 수준을 제거 할 수 있지만 내에서) 내가 가진 대답하지 않으이 나이 개체를 제거를 ...
여러 수준에 직접 바인딩하는 방법이 있습니까? 각 레벨은 스타일의 ControlTemplate입니다. 내가 WPF 4, .NET 4.0을 사용하고
, 혼합 4, 당신은이 작업을 수행해서는 안 2010
그러나 바인딩 할 10 개의 속성이있을 때마다 10 개의 종속성 속성이있는 사용자 지정 컨트롤을 만들어야합니다. (버튼, 슬라이더 등을위한 커스텀 콘트롤) – mlemay
@mlemay : 모든 것을 커스텀 프로퍼티가 필요하면 이상한 일을하고있는 것입니다. 또한 DataContext는 내부 컨트롤에 모든 방법으로 상속됩니다. 사용하지 않는 이유는 무엇입니까? 아니면 항상 DataContext를 변경하고 있습니까? –
우리의 그래픽 디자이너는 계층 구조를 만들고, 모든 것을, 그가 어떻게 더 많은 것을 알지 못합니다. 재산에 묶여 ... 그는 프로그래머가 아닙니다. 우리는 간단한 해결책이 필요합니다. DataContext thx를 사용하여 무언가를 찾으려고합니다. – mlemay