1
我正在編寫一個WPF程序在C#中,我試圖找出一種方法來綁定兩個文本框與十進制值。我有兩個不同的文本框與兩個不同的屬性綁定。WPF - 文本框綁定十進制值
我想當用戶更改「成本」時,「價格」會自動填充,當他更改「價格」時,成本也會自動填充。這產生像循環,我不想要。 而且我注意到,帶有十進制值的文本框綁定不允許添加逗號和點字符'.'
和','
。
我該如何解決這兩個問題?
這些文本框的XAML:
<TextBlock Grid.Row="0" Grid.Column="0" Text="Cost" Margin="5,5,0,0" />
<TextBox Grid.Row="1" Grid.Column="0" Text="{Binding Cost, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBlock Grid.Row="0" Grid.Column="1" Text="Price" Margin="5,5,0,0" />
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Price ,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
而且這是兩個性質:
private decimal _cost;
public decimal Cost
{
get { return _cost; }
set
{
if (_cost != value)
{
_cost = value;
NotifyOfPropertyChange("Cost");
if (Cost > 0)
{
Price = Math.Round(_cost * ((decimal)1.50), 2);
NotifyOfPropertyChange("Price");
}
}
}
}
private decimal _price;
public decimal Price
{
get { return _price; }
set
{
if (_price != value)
{
_price = value;
NotifyOfPropertyChange("Price");
if (Price > 0)
{
Cost = Math.Round(Price/(decimal)(1.55), 2);
NotifyOfPropertyChange("Cost");
}
}
}
}
編輯解決方案 搜索在網絡上,我找到了解決辦法here只是需要添加StringFormat=0{0.0}
。希望它能幫助別人。
它幫助我修復循環,但在文本框中我仍然不能插入逗號','和點'。 ',好像文本框不允許插入它們 – puti26
使用轉換器將值前後轉換。 –