2012-03-13 80 views
1

我試圖刪除單元格的字符串格式,而我正在編輯它,因爲它會導致副作用。實際上,當我編輯單元格時,它正在移動光標。在編輯datagrid中的單元格時刪除stringFormat

這裏是我的代碼:

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

我想我做的EditingElementStyle性質的東西,但我不覺得在網絡上什麼關係吧。

希望你能幫助我。

乾杯 托馬斯

回答

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 2012-03-13 14:37:16

0

你有很多的選擇。其中兩個是:

  1. 更改綁定忽略的StringFormat並將其移動到您的視圖模型/型號
  2. 創建一個自定義值轉換器

更改您的結合是最簡單的,但是至少可重複使用

<DataGridTextColumn 
    Width="15*" 
    ElementStyle="{StaticResource RightAlignStyle}" 
    Header="Coût (k€)" 
    Binding="{Binding Path=TechnicalCostAmount, Mode=TwoWay}"/> 
012:

更新在XAML綁定

然後在您的視圖模型/型號:

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

創建自定義值轉換器做同樣的事情就像上面的代碼,但它可以讓你在多個地方使用它。

參見:http://wpftutorial.net/ValueConverters.html

相關問題