2009-12-03 3 views
1

깨달음을받은 인사 들께 인사드립니다!ContentStringFormat을 사용하여 백분율 값을 표시하는 방법은 무엇입니까?

나는 (내가 WPF에 아주 새로운 해요, 아마 때문에) 지금 몇 시간 동안이 연주하지만, 성공하지 못한 해요 :

나는 누구의 DataContext를 DataTable에 바인딩 된 데이터 그리드가 있습니다. DataGrid는 고정 크기이며 그 목적은 값 표 y (x)를 보유하는 것입니다 (즉 헤더에 x 값이 표시되고 해당 y 값이 클립 보드에서 붙여 넣어지고 첫 번째 DataGridRow에 표시됨). 여태까지는 그런대로 잘됐다. 값은 붙여 넣어지고 (dataTable.rows [0] [i]에 i = 0 ... n 인 문자열로 할당 됨) 완벽하게 표시됩니다.

그러나 표시되는 숫자는 퍼센트 값이며, 내가 그들과 같은 표시 할 :

"0.18", "18 %"그래서

될 것이다, 나는 스타일을 사용하여이 대처하기로 결정 모든 DataGridCell 개체에 적용되는 :.

는 그런 배경과 전경 색상이 잘 적용되지만, 숫자는 여전히 소수 (예 : "0.18"로 표시됩니다
<Style TargetType="{x:Type Controls:DataGridCell}"> 
    <Style.Setters> 
     <Setter Property="ContentStringFormat" Value="{}{0:P}"/> 
     <Setter Property="Foreground" Value="DarkGray"/> 
     <Setter Property="Background" Value="Yellow"/> 
    </Style.Setters> 
</Style> 

여전히 읽고 "0.18"

어떻게 해결할 수 있습니까? 사전 인 Joerg

답변

4

에서

덕분에 난 당신이 데이터 그리드 컬럼에 대한 바인딩 정의와 함께있는 StringFormat을 지정할 수 있습니다 생각합니다. Smth. 다음과 같이 :이 도움이

<DataGridTextColumn Header="Column_Header" Binding="{Binding Path=Field_Name, StringFormat='{}{0:P}'}"/> 

희망,

+0

안녕 방탄복, 난 도망 내 원래의 코드에서 가서 내가 XAML에 손으로 약간의 DataGridTextColumns을 만들어 더 간단한 예를 구축 : 여기

나의 점을 설명하기 위해 예입니다. 하나는 DataTable의 숫자 열에 바인딩되었습니다. 이 설정에서 힌트가 상당히 잘 작동하고 마침내 원하는 형식의 "18.0 %"값을 얻었습니다. 지금 난 여전히 데이터 그리드 'AutoGenerateColumns 다시 "True"로 설정되어있는 경우 자동 바인딩을 변경하는 방법을 찾을 필요가 ...하지만 난 :-) 안부 인 Joerg –

0

내가 문제가 당신이 형식으로하려고하는 데이터 형식 숫자 아니라고 생각 간주한다. 테이블 데이터 유형을 double 또는 다른 숫자 유형으로 변경하십시오.

string stringValue = "0.18"; 
string formattedStringValue = String.Format("{0:P}", stringValue); 
// formattedStringValue = 0.18 

double doubleValue = 0.18; 
string formattedDoubleValue = String.Format("{0:P}", doubleValue); 
// formattedDoubleValue = 18.00 % 
+0

안녕 앤드류를하지 않을 경우 그 새 게시물의 , 답장을 보내 주셔서 감사합니다. 실제로 순수한 문자열을 다룰 때 당신은 꽤 정확합니다. 그러나이 경우에는 당신의 힌트가 도움이되지 않았습니다. 적어도 그것은 DataTable 또는 DataColumn의 DataType 특성을 설정하려고 시도하지 않았습니다. 결과 포맷 된 값은 "0.18"을 계속 유지했습니다. 감사합니다. Joerg –

관련 문제