DecimalをIntに変換する変換を行いたいと思います。私のコードを見てください:Decimal to Int Converter
<ProgressBar Margin="0,10,0,10"
Grid.Row="2" Grid.ColumnSpan="3" IsIndeterminate="False" Height="10"
Maximum="{Binding SavingGoal, Converter={StaticResource DecimalToInt}}" Value="{Binding Balance, Converter={StaticResource DecimalToInt}}"/>
そして、ここではバインディングが指し示すところです:
newGoal.SavingGoal = Convert.ToDecimal(SavingsAmountsTextBox.Text);
newGoal.Balance = 0;
そして、ここでクラスです:
public decimal SavingGoal { get; set; }
public decimal Balance { get; set; }
だから私の問題は私にはないということです私の場合に合わせてIValueConverterを使用する方法を知っています。自分のUserControlが解析している小数点をintに変換して、最後にプログレスバーを動作させたい。あなたは静的リソース
<ns:DecimalToIntConverter x:Key="DecimalToInt" />
としてあなたDecimalToInt
コンバータを登録し
public class DecimalToIntConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// convert here
// value is your binding - use it if you can
// parameter is the additional parameter that you can pass in but don't need to.
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value; // who cares?
}
}
はあなた 'DeciamlToInt'コンバータを表示することができます:私はそのような何かを意味ですか? – Romasz
あなたのコンバーターは貯蓄目標と残高を渡す必要があります。 IValueConverterインターフェイスはパラメータを指定しますが、計算を行う「派生プロパティ」を追加する方が簡単です。 'public {PercentOfGoal {get {return(int)(Balance/SavingsGoal)* 100;}のようなものです。 }} '、そしてそれに' Value'をバインドします。 –
私のコンバーターには何もなかった頃。今すぐConvertメソッドで次のようにしました。 'if(値は小数点以下){ return System.Convert.ToInt32(value); } return false; ' –