0

DatagridTextbox列に小数点以下2の値の後にのみ入力し、ユーザーが小数点を1つだけ入力するように制限する方法はありますか?

つまり、ユーザーが入力できるのは1234.25、ではなく1234.1234、のようなものだけであり、このようなものの入力を防ぐこともできます。1234.235.2

4

2 に答える 2

0

バインドする値にも String Format プロパティを使用します。

      <DataGridTextColumn Header="Total Cost" Binding="{Binding Path=Total, StringFormat={}{0:N2}}"/>
于 2012-11-23T13:17:15.447 に答える
0

この質問と答えを見てください: WPF DataGrid セルを編集しているユーザーが空であることを知るには?

TextChanged イベントも処理する必要があり、コードは次のようになります。

void tb_TextChanged(object sender, TextChangedEventArgs e)
{
   TextBox tb=(TextBox)sender;
   tb.Forground = Brushes.Black;
   int indexOfDot=tb.Text.IndexOf(".");
   if (indexOfDot != -1)
      {
          if (tb.Text.Length>indexOfDot+2)
          {
              //here you can tell the user that this is a wrong format
              //and do other stuff; for example:
              tb.Forground = Brushes.Red;
          }
      }
}

ユーザーが間違った形式を入力できないようにする場合は、OnPreviewKeyDown イベントを処理します。他の条件を設定できます。ダブルにしたい場合は、これを試してください:

double d;
if (double.TryParse(tb.Text,out d) == false)
{
    e.Handled = true;
}
于 2012-11-23T14:17:26.733 に答える