मैंने डबल से पूर्णांक में कनवर्ट करने के लिए एक कनवर्टर बनाया है।मेरा कनवर्टर अमान्य कास्ट त्रुटि क्यों देता है?
लेकिन रेखा "वापसी (int) मान;" हमेशा "निर्दिष्ट कास्ट वैध नहीं है" मिलता है।
मुझे ऐसा करने के लिए क्या करना है ताकि मेरा कनवर्टर सफलतापूर्वक एक डबल रूपांतरित हो और एक पूर्णांक वापस भेज सके?
कनवर्टर:
namespace TestChangeAngle
{
[ValueConversion(typeof(double), typeof(int))]
class DoubleToIntegerConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (int)value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
}
XAML:
<Page x:Class="TestChangeAngle.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestChangeAngle"
Title="Page1">
<Page.Resources>
<local:DoubleToIntegerConverter x:Key="DoubleToIntegerConverter"/>
</Page.Resources>
<StackPanel HorizontalAlignment="Left" Margin="20">
<Image Source="images\logo2.png"
RenderTransformOrigin="0.5, 0.5"
Width="100"
Margin="10">
<Image.RenderTransform>
<RotateTransform Angle="{Binding ElementName=TheSlider, Path=Value}"/>
</Image.RenderTransform>
</Image>
<Slider x:Name="TheSlider"
Width="200"
Minimum="0"
Maximum="360"
HorizontalAlignment="Center"
Margin="10"
Cursor="Hand"/>
<TextBox x:Name="TheAngle"
Margin="10"
Width="100">
<TextBox.Text>
<Binding ElementName="TheSlider"
Path="Value"
UpdateSourceTrigger="PropertyChanged"
Converter="{StaticResource DoubleToIntegerConverter}"
Mode="TwoWay">
<Binding.ValidationRules>
<local:MinMaxValidationRule Minimum="0" Maximum="360"/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
</StackPanel>
</Page>
यदि पैरामीटर हमेशा वापसी (int) (डबल) मान से दोगुना होता है; काम भी करेगा, लेकिन ToInt32 बेहतर है। – Nir
@Nir - हां, यह संकलक को दोहरे से int तक एक अंतर्निहित रूपांतरण करने की अनुमति देगा, भले ही यह एक कलाकार की तरह दिखता हो। – tvanfosson