2013-03-18 4 views
2

내 트리거가 빈 문자열 또는 null을 검사하고 있기 때문에 이것이 작동하지 않는 이유가 있다고 가정하고 있는데, 실제로 갖고있는 것은 텍스트가있는 텍스트 블록입니다. 비어있는 (또는 null) 속성 누구든지 쉽게 트리거를 수정할 수있는 방법을 알고 있습니까? 나는 30 분 동안 행운이없는 바인딩/트리거/데이터 트리거 (datatriggers)의 다른 방법을 시도해왔다.비어 있거나 null 인 경우 멀티 바인딩 도구 설명 표시 안 함

<ListView.ItemContainerStyle> 
    <Style TargetType="ListViewItem"> 

     <Setter Property="ToolTip"> 
     <Setter.Value> 
      <!--Can't be directly in tool tip, cuz tool tip is object. StringFormat will only work with string--> 
      <TextBlock> 
       <TextBlock.Text> 
        <MultiBinding StringFormat="{}ID: {0}&#x0a;X: {1}&#x0a;Y: {2}"> 
        <Binding Path="MyClass.Id"/> 
        <Binding Path="MyClass.x"/> 
        <Binding Path="MyClass.y"/> 
        </MultiBinding> 
       </TextBlock.Text> 
      </TextBlock> 
     </Setter.Value> 
     </Setter> 

     <Style.Triggers> 
     <Trigger Property="ToolTip.Content" Value="{x:Static System:String.Empty}"> 
      <Setter Property="ToolTip.Visibility" Value="Collapsed" /> 
     </Trigger> 
     <Trigger Property="ToolTip.Content" Value="{x:Null}"> 
      <Setter Property="ToolTip.Visibility" Value="Collapsed" /> 
     </Trigger> 
    </Style.Triggers> 

    </Style> 
</ListView.ItemContainerStyle> 
+0

FYI : http://stackoverflow.com/a/197130/620360. FormatString에 추가 텍스트가 포함되어 있으면 텍스트가 null 또는 비어 있지 않습니다. – LPL

+0

링크를 제공해 주셔서 감사합니다.하지만 여러 속성에 바인딩해야합니다. 글쎄, 이상한 것은 위의 바인딩 속성 (id, x, y)이 null 일 때 도구 설명에 공백이 표시된다는 것입니다. ToolTip에 텍스트가 포함되어있는 경우에만 ToolTip이 표시되도록하려고합니다. – jsirr13

+1

예제 응용 프로그램에서 시나리오를 시도했지만 바인딩에 문제가있는 경우 공백 툴팁 만 표시됩니다. 1 개 또는 모든 프로퍼티가 null의 경우는 놓치고 포맷은 표시됩니다. 그래서 나는 당신의 접근 방식이 효과가 없을 것이라고 생각합니다. 제 의견으로는 가장 간단한 해결책은 표시 할 항목이 있으면 null이 아닌 ToolTip 바인딩에 대한 추가 문자열 속성이 될 것입니다. – LPL

답변

1

그래서 실제로 정확히 똑같은 스타일을 유지했습니다. 내 "MyClass"개체가 null이면 빈 도구 팁이 표시된다는 것이 문제인 것처럼 보입니다.

하지만 "MyClass"가 null 인 경우 도구 팁이 표시되지 않게해야합니다.

나는 다음과 같은 datatrigger와 함께이 문제를 해결 얻을 :

<DataTrigger Binding="{Binding Path=MyClass}" Value="{x:Null}"> 
    <Setter Property="ToolTip" Value="{x:Null}" /> 
    </DataTrigger> 

내 원래의 게시물에 한 다른 트리거가 더 이상 필요. 위의 스 니펫에서 ToolTip을 null로 설정하면 툴팁이 자동으로 표시되지 않습니다.

관련 문제