Hi,
I expect the SelectionEnd and SelectionStart values to stay within the bounds of the Maximum and Minimum but they don't. I created a small sample app that demonstrates this behavior.
View:
Code behind:
ViewModel:
Am I missing a property on the slider that will prevent this behavior or do I have to catch it manually?
Thanks,
Josh
I expect the SelectionEnd and SelectionStart values to stay within the bounds of the Maximum and Minimum but they don't. I created a small sample app that demonstrates this behavior.
View:
<
Grid
>
<
StackPanel
>
<
StackPanel
Orientation
=
"Horizontal"
Height
=
"50"
>
<
Label
Content
=
"Upper Thumb"
/>
<
TextBox
Width
=
"300"
Height
=
"35"
Text
=
"{Binding Path=SelectionEnd}"
/>
</
StackPanel
>
<
telerik:RadSlider
Name
=
"radSlider"
VerticalAlignment
=
"top"
Width
=
"25"
Height
=
"200"
Margin
=
"0 10 5 0"
IsSelectionRangeEnabled
=
"True"
TickPlacement
=
"None"
Minimum
=
"0.0"
Maximum
=
"1.0"
Orientation
=
"Vertical"
SelectionStart
=
"{Binding Path=SelectionStart, Mode=TwoWay, FallbackValue=0.25}"
SelectionEnd
=
"{Binding Path=SelectionEnd, Mode=TwoWay, FallbackValue=0.5}"
LargeChange
=
"0.05"
SmallChange
=
"0.05"
/>
<
StackPanel
Orientation
=
"Horizontal"
Height
=
"50"
>
<
Label
Content
=
"Lower Thumb"
/>
<
TextBox
Width
=
"300"
Height
=
"35"
Text
=
"{Binding Path=SelectionStart}"
/>
</
StackPanel
>
</
StackPanel
>
</
Grid
>
Code behind:
public
partial
class
MainWindow : Window
{
public
MainWindow()
{
InitializeComponent();
var vm =
new
SliderViewModel();
DataContext = vm;
}
}
ViewModel:
public
class
SliderViewModel : INotifyPropertyChanged
{
public
SliderViewModel()
{
_selectionStart = 0.25;
_selectionEnd = 0.5;
}
private
double
_selectionStart;
public
double
SelectionStart
{
get
{
return
_selectionStart;
}
set
{
if
(_selectionStart != value)
{
_selectionStart = value;
OnPropertyChanged(
"SelectionStart"
);
}
}
}
private
double
_selectionEnd;
public
double
SelectionEnd
{
get
{
return
_selectionEnd;
}
set
{
if
(_selectionEnd != value)
{
_selectionEnd = value;
OnPropertyChanged(
"SelectionEnd"
);
}
}
}
public
event
PropertyChangedEventHandler PropertyChanged;
protected
virtual
void
OnPropertyChanged(String propertyName)
{
var handler = PropertyChanged;
if
(handler !=
null
)
{
handler(
this
,
new
PropertyChangedEventArgs(propertyName));
}
}
}
Am I missing a property on the slider that will prevent this behavior or do I have to catch it manually?
Thanks,
Josh