2014-06-12 8 views
0

키와 값이 모두 문자열 유형 인 사전이 있습니다.silverlight에서 요소의 툴팁에 사전의 값을 바인드

키에는 UI 요소의 이름이 저장되며 값에는 해당 요소에 대한 툴팁이 저장됩니다.

코드 :이 사전은 정적 클래스에 포함되어

static Dictionary<string, string> tooltips = new Dictionary<string, string>(); 
tooltips.Add("Add", "Adds the digits"); 
tooltips.Add("Multiply", "Multiply the digits"); 
tooltips.Add("Divide", "Divide the digits"); 

.

버튼이 포함 된 xaml 페이지에이 사전을 바인딩하고 싶습니다. 누구든지 xaml의 지정된 요소에 툴팁을 바인딩 할 수있는 방법을 알려주시겠습니까?

+0

입니다 도구 설명이 표시? – Sajeetharan

+0

키는 요소의 이름입니다. 예를 들어 버튼의 이름은 "Add"이고 값은 "Add the digits"와 같은 해당 요소에 적용 할 툴팁을 나타냅니다. – user2091061

답변

1

여기 해결책이 있습니다.

당신은 표시 버튼 내부에있는 TextBlock을 추가 할 필요가 툴팁, 당신의 XAML은 다음과 같습니다, 그래서 여기

<Grid x:Name="LayoutRoot" Background="White"> 
    <Button Content="Button" HorizontalAlignment="Left" Margin="230,64,0,0" VerticalAlignment="Top" Name="btnAdd" Width="75"> 
     <ToolTipService.ToolTip> 
      <ToolTip> 
       <TextBlock x:Name="Add"></TextBlock> 
      </ToolTip> 
     </ToolTipService.ToolTip> 
    </Button> 
    <Button Content="Button" HorizontalAlignment="Left" Margin="230,118,0,0" VerticalAlignment="Top" Name="btnMultiply" Width="75"> 
     <ToolTipService.ToolTip> 
      <ToolTip > 
       <TextBlock Name="Multiply"></TextBlock> 
      </ToolTip> 
     </ToolTipService.ToolTip> 
    </Button> 
    <Button Content="Button" HorizontalAlignment="Left" Margin="230,91,0,0" VerticalAlignment="Top" Name="btnDivide" Width="75"> 
     <ToolTipService.ToolTip> 
      <ToolTip > 
       <TextBlock Name="Divide"></TextBlock> 
      </ToolTip> 
     </ToolTipService.ToolTip> 
    </Button> 
</Grid> 

그리고

는 키와 값 무슨

 tooltips.Add("Add", "Adds the digits"); 
     tooltips.Add("Multiply", "Multiply the digits"); 
     tooltips.Add("Divide", "Divide the digits"); 
     foreach (KeyValuePair<string, string> name in tooltips) 
     { 
      TextBlock tt = LayoutRoot.FindName(name.Key.ToString()) as TextBlock; 
      tt.Text = name.Value.ToString(); 
     } 
     foreach (KeyValuePair<string, string> name in tooltips) 
     { 
     TextBlock tt = LayoutRoot.FindName(name.Key.ToString()) as TextBlock; 
     tt.Text = name.Value.ToString(); 
     } 
+0

고마워요 ... 그것은 내 필요에 완벽하게 어울립니다 .. !!! – user2091061

+0

질문은 바인딩을 구현하는 방법이며,이 코드를 뒤에서하지 않는 것입니다. –