Вы забыли :
. Из-за этого весь селектор был поврежден и не работал. http://jsfiddle.net/a96f6/87/
Изменить: похоже (после обновления?) это больше не работает, попробуйте следующее:
input::-webkit-input-placeholder{
color:red;
}
input:-moz-placeholder {
color:red;
}
Примечание. Не смешивайте селекторы префикса поставщика (-moz, -webkit, -ms, ...). Например, Chrome не понимает «-moz-», а затем игнорирует весь селектор.
Редактирование для пояснения: чтобы он работал во всех браузерах, используйте этот код:
::-webkit-input-placeholder {
color:red;
}
::-moz-placeholder {
color:red;
}
::-ms-placeholder {
color:red;
}
::placeholder {
color:red;
}
Вы обновляете свою собственность каждый раз при изменении значения. Когда вы вводите .
, он записывается в вашу модель просмотра и обновляется.
, например. если вы введете 100.
, округлите его до 100
, таким образом вы не увидите ни одной точки.
У вас есть некоторые варианты, чтобы изменить это поведение:
использовать Отложенное связывание:
<TextBox Text="{Binding Path=TransactionDetails.TransactionAmount,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
Delay=250}"
Grid.Column="3"
Grid.ColumnSpan="2"
Grid.Row="5"
x:Name="TextBoxAmount" />
изменить значение только в том случае, если оно отличается от сохраненного (я бы рекомендовал это для каждой привязки):
private double _transactionAmount;
public double TransactionAmount
{
get { return _transactionAmount; }
set
{
if (_transactionAmount != value)
{
_transactionAmount = value;
Notify("TransactionAmount");
}
}
или использовать какой-то вид проверки, например ValidatesOnExceptions.
Лучшее решение, которое я получил с помощью StringFormat
, например
<TextBox Text="{Binding TransactionDetails.TransactionAmount, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,StringFormat=N2}" Grid.Column="3"
Grid.ColumnSpan="2" Grid.Row="5" x:Name="TextBoxAmount" />
Также мы можем перейти к пользовательскому строковому формату в соответствии с требованиями
Ваша проблема связана с UpdateSourceTrigger. Вместо использования там вы можете использовать что-то вроде этого,
private double amount;
public double Amount
{
get
{
return amount;
}
set
{
amount= value;
PropertyChanged();
Calculation();
}
}
PropertyChanged () Вы получите это из INotifyPropertyChanged. Для получения дополнительной информации нажмите здесь https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged (v = vs.110) .aspx