2012-03-13 13 views
1

セルの文字列フォーマットを削除する際に、編集中に副作用が発生しています。実際には、私はセルを編集中にカーソルを動かしています。私はEditingElementStyleプロパティで何かをしてきましたが、私はそれを行うには、Web上で何かを見つけることはありませんだと思うデータグリッドのセルを編集しているときにstringFormatを削除します

<DataGridTextColumn Width="15*" ElementStyle="{StaticResource RightAlignStyle}" 
Header="Coût (k€)" Binding="{Binding Path=TechnicalCostAmount, Mode=TwoWay, 
UpdateSourceTrigger=PropertyChanged, StringFormat=N0, ConverterCulture=fr-FR}"/> 

は、ここに私のコードです。

あなたが私を助けてくれることを願っています。

乾杯 トーマス

答えて

4

は、私はあなたがDataGridTemplateColumnを使用できると思う:

<DataGridTemplateColumn Header="Coût (k€)"> 
     <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Path=TechnicalCostAmount, Mode=OneWay, StringFormat=N0, ConverterCulture=fr-FR}"/> 
     </DataTemplate> 
     </DataGridTemplateColumn.CellTemplate> 
     <DataGridTemplateColumn.CellEditingTemplate> 
     <DataTemplate> 
      <TextBox Text="{Binding Path=TechnicalCostAmount, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 
     </DataTemplate> 
     </DataGridTemplateColumn.CellEditingTemplate> 
    </DataGridTemplateColumn> 
+0

これは良いアプローチは、あまりにも。これらの要件を満たすさまざまな方法があります。 – Jeremiah

0

あなたは多くのオプションを持っています。二つがあります:

    はあなたがstringformatを無視して、あなたのViewModelに移動するために結合変更
  1. /モデル
  2. は、あなたの結合が最も簡単です変更するカスタム値コンバーター

を作成し、しかし少なくとも再利用可能

更新XAMLでバインディング:

<DataGridTextColumn 
    Width="15*" 
    ElementStyle="{StaticResource RightAlignStyle}" 
    Header="Coût (k€)" 
    Binding="{Binding Path=TechnicalCostAmount, Mode=TwoWay}"/> 
あなたのViewModel /モデルにおけるその後

:カスタム値コンバーターを作成

public string TechnicalCostAmount 
{ 
    get { return string.Format("{0:n0}", _TechnicalCostAmount); } 
    set 
    { 
     Decimal.TryParse(value, _TechnicalCostAmount); 
     RaisePropertyChange("TechnicalCostAmount"); 
    } 
} 

は、上記のコードと同じことをし、しかし、それはあなたが複数の場所でそれを使用することができます。

参照:http://wpftutorial.net/ValueConverters.html

関連する問題