2011-10-31 7 views
0

내 xaml에서 다음과 같은 바인딩이 있습니다. 그러나 double 값은 볼 수 있지만 StringFormat은 완전히 무시됩니다.StringFormat가 반응하지 않는 것 같습니다.

<Label Content="{Binding ByteCount, StringFormat=n}"/> 

ByteCount 속성은 double 유형입니다. 심지어 문자열로 변경하고 여전히 작동하지 않습니다.

어떤 이유가 될 수 있습니까?

업데이트 :

public double ByteCount 
{ 
      get 
      { 
       return CloneHelper.GetSize(this); 
      } 
} 

public static class CloneHelper 
    { 
     public static double GetSize(BookSetViewModel book) 
     { 
      ..... 

      return total; 
     } 
} 
+1

여기서 바인딩은 무엇입니까? –

+0

아마도 귀하의 질문에 실제 바인딩을 포함시킬 수 있습니까? (btw : Double!?로 표현 된 ByteCount 속성) –

+0

'ByteCount'가'int' 인 경우 변환기가 누락되었을 수 있습니다. –

답변

6

WPF의 Label 실제로 바인딩의 StringFormat 세트 ContentStringFormat 대신

<Label Content="{Binding ByteCount}" ContentStringFormat="n" /> 
+0

당신은 스타 레이첼입니다. 놀라운 발견, 이것이었습니다 !!! : Silverlight에 대해서도 마찬가지입니까? 이걸 테스트해야합니다 ... – Houman

+0

@Kave Silverlight에서 같은지 확실하지 않지만, 그렇다고 가정합니다. 빠른 테스트를 작성하고 알아야합니다. – Rachel

+0

정말 훌륭합니다. . –

0

StringFormat 속성은 사용해야하는 독특한 문법을 ​​가지고있다.

예를 들어,이 스 니펫을 사용해야합니다.

<Label Content="{Binding ByteCount, StringFormat={}{0:n}}" /> 

Here's있는 StringFormat 속성에 대한 MSDN 페이지 링크.

+1

그것은 완벽하게 잘 작동하지 않고, {}는 중괄호를 벗어날 수 있습니다. "StringFormat = n"이 작동해야하며 여기에서도 작동합니다. –

+0

허. 고마워요. 나는 그걸 몰랐다. –

+0

나는 당신이 마지막에 ... "을 놓친 것 같아요."그럼에도 불구하고 그것은 작동하지 않습니다. 나는 이해하지 못합니다 ... – Houman

0

는 레이블 (아마도 때문에 대상 유형, 이유가 뭔지 생각이 없다 적이

무엇이든 덮어 쓰는 ContentStringFormat 속성이 있습니다 개체),하지만 TextBlock에 대한 확인 작동합니다 :

<TextBlock Text="{Binding ByteCount, StringFormat=n}"/> 
관련 문제