개체 컬렉션에 MyModel.cs가 있습니다. 컬렉션은 Some
입니다. MyModel에는 Brush 유형 인 Color 속성이 있습니다.바인드 ItemSources의 속성에서 스트로크
색상은 현재 모두 빨간색입니다.
는 지금은<MyControl: x:Name="control1" ItemsSource="{Binding Some}" Stroke="Red">
을하지만 당신은 내가 스트로크를 하드 참조하십시오. 내가 원하는 건
Stroke = "{Binding Some.Color}"
어떻게됩니까?
사용자 정의 변환기와 함께 MultiBinding을 사용하거나 (컬렉션의 두 모델이 다른 색상을 선택할 때 - 선택할 수있는 경우) 또는 상위 수준 (컬렉션이있는 곳)으로 속성을 이동해야합니다. – Shcherban
@Shcherban, 색상이 다른 경우 다른 컬렉션이 있습니다. 그래서 멀티 바인딩을 사용하지 않습니다. – Bigeyes
좋아요, 그렇다면'Stroke = {Binding Some, Converter = SomeConverter}'와 같이 콜렉션의 첫 번째 항목에서 색상을 선택하고'return (value as IEnumerable)? '과 같은 간단한 방식으로 정규 바인딩을 사용할 수 있습니다. FirstOrDefault)?.색깔 ?? Colors.Red' –
Shcherban