2011-11-15 2 views
2

간단한 mvvm 바인딩처럼 보입니다.ItemsControl이있는 툴팁이 DataContext 변경시 업데이트되지 않습니다.

툴팁이있는 격자가 있습니다. Grid의 DataContext가 변경되어 textBlock의 값과 툴팁 안에있는 ItemsControl을 업데이트해야합니다. 문제는 툴팁 안의 목록이 업데이트되지 않는다는 것입니다. 테스트를 위해 텍스트 블록 아래에 동일한 ItemsControl을 추가했습니다. 이 목록은 문제없이 업데이트됩니다. 여기에는 필요한 것만 포함하는 간단한 코드가 있습니다 (그렇게 생각합니다).

<Grid DataContext="{Binding SelectedRouting}"> 
    <StackPanel> 
     <TextBlock Text="{Binding ActionDescription}" /> 
     <ItemsControl ItemsSource="{Binding RoutingActionList}" ItemTemplate="{StaticResource SingleActionTemplate}"/> 
    </StackPanel> 

    <Grid.ToolTip> 
     <ToolTip Style="{StaticResource ActionToolTipStyle}"> 
      <ItemsControl ItemsSource="{Binding RoutingActionList}" ItemTemplate="{StaticResource SingleActionTemplate}"/> 
     </ToolTip> 
    </Grid.ToolTip> 
</Grid> 

질문은 : 첫째 ItemsControl에 메인 그리드의 DataContext가 변경 업데이트 (StackPanel에의 하나) 및 도구 설명 내부의 두 번째 ItemsControl을하지 않는 이유. 어떤 아이디어 또는 해결책?

+0

는 실버 아니면 대답 : 당신이 쓴 – Jehof

+0

WPF (부정확 죄송합니다) : DataContext를 제공하는 요소를 찾을 수 없습니다 ... – Bartek

답변

2
이 질문에 대한 answer에서

봐는,이있을 수 있습니다 것은 당신이 원하는 무엇 - WPF Tooltip does not update

은 또한 경우에 당신이 당신의 툴팁의 데이터 컨텍스트를 설정할 수 있습니다 툴팁 내에서 툴팁을 설정할하고 다음 작업을해야 -

<Grid.ToolTip> 
     <ToolTip DataContext="{Binding SelectedRouting}" Style="{StaticResource ActionToolTipStyle}"> 
      <ItemsControl ItemsSource="{Binding RoutingActionList}" ItemTemplate="{StaticResource SingleActionTemplate}"/> 
     </ToolTip> 
    </Grid.ToolTip> 

툴팁이 Control의 시각적 트리에 속해 있지 않으므로 변경 사항이 컨트롤에 전파되지 않습니다. 따라서 툴팁의 dataContext를 설정하면 Datacontext의 PropertyChanges에 대해 알릴 수 있습니다.

+0

+1 WPF? – Rachel

+0

솔루션 VS 출력에 제공을 게시에서 나보다 더 빨리 것에 대한 – Bartek

1

내 추측이 WPF는 WPF에서 다른 층의 일부로서 도구 설명을 읽는 것, 그래서 PropertyChange 이벤트가 호출 될 때, 그것은 단지 당신의 도구 설명에 대한 DataContext를 지정하거나 시도의 주요 계층

를 트리거됩니다 이의 PropertyChange 알림의 경고 도착 객체 있도록, 또는

<Grid.ToolTip> 
    <ToolTip DataContext={Binding RoutingActionList}" Style="{StaticResource ActionToolTipStyle}"> 
     <ItemsControl ItemsSource="{Binding }" ItemTemplate="{StaticResource SingleActionTemplate}"/> 
    </ToolTip> 
</Grid.ToolTip> 

또는

<Grid.ToolTip> 
    <ItemsControl ItemsSource="{Binding }" ItemTemplate="{StaticResource SingleActionTemplate}"/> 
</Grid.ToolTip> 
+0

첫 번째 Sugestion은 RV1987에서와 동일한 VS 출력을 제공합니다. DataContext를 제공하는 요소를 찾을 수 없습니다. 두 번째 시도는 거의 정상입니다. 다음 게시물에서 나머지 – Bartek

0

솔루션 w 모두를 제거하려고 RV1987에서 제공하는 링크와 같습니다. <Grid.ToolTip> 안에 <ToolTip> 태그가있을 수 없으며 내가 물었던 문제를 해결합니다. 어쨌든 사소한 문제가 있습니다. 태그를 제거하면 스타일을 도구 설명에 할당 할 수도 없게됩니다. 툴팁 내부에 무엇을 넣든 기본 경계가 표시됩니다. 도구 설명에 스타일 지정하기, 즉 멋진 어두운 배경이 있습니다. 지금은 사라 졌어요 :(:(어떤 아이디어 그것에 대해?

관련 문제