How to bind the silverlight radio button with in the listbox in MVVM
here is my coding for that:-
<Grid Grid.Row="1">
<StackPanel>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Height="300" Width="950">
<ScrollViewer.Content>
<ListBox Grid.Row="1" Name="FactorsListBox" SelectedItem="{Binding FactorsSelectedItem,Mode=TwoWay}" ItemsSource="{Binding FactorsList,Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="160"/>
<ColumnDefinition Width="140"/>
<ColumnDefinition Width="90"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="90"/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="90"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="80"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Margin="5,0,0,0" Text="Name" Grid.Column="0" Height="27" Width="35" HorizontalAlignment="Left" />
<TextBox Grid.Row="0" Margin="53,0,0,0" Text="{Binding Name,Mode=TwoWay,ValidatesOnDataErrors=True}" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" Grid.Column="0" Height="27" Width="110" HorizontalAlignment="Left" Name="txtName"/>
<TextBlock Name="TxtMandatory" Grid.Row="0" Margin="43,0,0,0" Foreground="Red" FontWeight="Bold" Visibility="Visible" Text="*" Grid.Column="0" Height="27" Width="15" HorizontalAlignment="Left" />
<TextBox Grid.Row="1" Margin="3,0,0,0" Grid.Column="0" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" Width="160" Height="80" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible" Name="txtdesc" Text="{Binding Description, Mode=TwoWay}" Grid.RowSpan="2" AcceptsReturn="True"/>
<RadioButton Name="rdbtnImpacts" GroupName="RB1" Margin="40,0,3,8" IsEnabled="{Binding Path=Impact,Mode=TwoWay}" IsChecked="{Binding Path=Impact,Mode=TwoWay}" VerticalAlignment="Bottom" Grid.Column="1" Content="Impacts" Grid.Row="1"></RadioButton>
<RadioButton Name="rdbtnRevenue" GroupName="RB1" Grid.Row="1" Margin="40,33,3,0" IsEnabled="{Binding Path=Revenue,Mode=TwoWay}" IsChecked="{Binding Path=Revenue,Mode=TwoWay,ElementName=FactorsListBox}" VerticalAlignment="Top" Grid.Column="1" Content="Revenue" Grid.RowSpan="2"></RadioButton>
<TextBlock Name="txtblkFrom" Margin="0,4" Grid.Row="1" Grid.Column="2" Width="90" Text="From" Height="27"/>
<TextBlock Name="txtblkTo" Margin="0,4,0,16" Grid.Row="2" Grid.Column="2" Width="90" Text="To" Height="27"/>
<ComboBox Name="ddlfrommonth" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" Margin="46,4,54,4" Width="90" Grid.Row="1" Grid.Column="2" Height="27"
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=ScrollViewer}, Path=DataContext.FromMonthList}"
DisplayMemberPath="MonthName"
SelectedValuePath="MonthName"
SelectedValue="{Binding FromMonth,Mode=TwoWay}" Grid.ColumnSpan="2" />
<ComboBox Name="ddlTomonth" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" Margin="46,4,54,16" Width="90" Grid.Row="2" Grid.Column="2" Height="27"
ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=ScrollViewer}, Path=DataContext.ToMonthList}"
DisplayMemberPath="MonthName"
SelectedValuePath="MonthName"
SelectedValue="{Binding ToMonth,Mode=TwoWay}" Grid.ColumnSpan="2" />
<TextBlock FontWeight="Bold" Text="Max%Min%" Grid.Column="3" Width="90" Name="txtblkMaxMinPercent" Margin="70,20,30,5" Grid.ColumnSpan="2" />
<TextBlock Name="TxtMandatory1" Margin="46,10,0,5" Height="11" Grid.Column="4" Width="10" Foreground="Red" FontWeight="Bold" Visibility="Visible" Text="*" HorizontalAlignment="Left" />
<TextBox Name="MaxPercen" MaxLength="5" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" Grid.Row="1" Grid.Column="3" Width="90" Height="27" Text="{Binding MaxperValue,Mode=TwoWay}" Grid.ColumnSpan="2" Margin="70,4,30,4" />
<TextBox Name="MinPercen" MaxLength="5" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" Grid.Row="2" Grid.Column="3" Width="90" Height="27" Text="{Binding MinperValue,Mode=TwoWay}" Grid.ColumnSpan="2" Margin="70,4,30,16" />
<Slider Name="WireFrameSlider" Orientation="Vertical" Minimum="{Binding ElementName=MinPercen,Path=Text,Mode=TwoWay}" Maximum="{Binding ElementName=MaxPercen,Path=Text,Mode=TwoWay}" Value="{Binding Effectpercentagevalue,Mode=TwoWay}" Height="120" Grid.Column="4" Grid.RowSpan="3" Width="30" Cursor="Arrow" Grid.ColumnSpan="2" Margin="83,0,7,0"></Slider>
<TextBlock FontWeight="Bold" Text="Effect" Grid.Column="6" Width="90" Name="txtblkEffect" Grid.ColumnSpan="2" Margin="0,20,90,6" />
<TextBlock Text="{Binding ElementName=WireFrameSlider,Path=Value,Mode=TwoWay,StringFormat=\{0:n2\}}" Grid.Row="1" Grid.Column="6" Height="27" Name="txtblkEffectPercentValue" Grid.ColumnSpan="2" Margin="0,4,115,4" />
<RadioButton Name="rdbtnEnabled" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" GroupName="RB2" Grid.Row="1" IsChecked="{Binding Path=Enabled, Mode=TwoWay}" Margin="10,0,23,10" VerticalAlignment="Bottom" Grid.Column="7" Content="Enabled"></RadioButton>
<RadioButton Name="rdbtnDisabled" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" GroupName="RB2" IsChecked="{Binding Path=Disabled,Mode=TwoWay}" Grid.Row="1" Margin="10,33,30,0" VerticalAlignment="Top" Grid.Column="7" Content="Disabled" Grid.RowSpan="2"></RadioButton>
<TextBlock Name="TxtMandatory2" FontWeight="Bold" Text="*" Grid.Row="0" Grid.Column="8" Height="17" Margin="-10,0,0,-70" Width="15" Foreground="Red" Visibility="Visible"/>
<RadioButton Name="rdbtnPublic" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" GroupName="RB3" Grid.Row="1" IsChecked="{Binding Path=Public,Mode=TwoWay}" Margin="103,0,27,10" VerticalAlignment="Bottom" Grid.Column="7" Content="Public" Grid.ColumnSpan="2"></RadioButton>
<RadioButton Name="rdbtnPrivate" IsEnabled="{Binding Path=EnableSelectedItem,Mode=TwoWay}" GroupName="RB3" IsChecked="{Binding Path=Private,Mode=TwoWay}" Grid.Row="1" Margin="103,33,27,0" VerticalAlignment="Top" Grid.Column="7" Content="Private" Grid.RowSpan="2" Grid.ColumnSpan="2"></RadioButton>
<TextBlock Grid.Row="3" Visibility="Collapsed" Text="{Binding FactorID,Mode=TwoWay}" Grid.Column="3" Height="20" Width="50"/>
<TextBlock Grid.Row="3" Visibility="Collapsed" Text="{Binding UserID,Mode=TwoWay}" Grid.Column="4" Height="20" Width="80"/>
<StackPanel Grid.Row="4" Grid.ColumnSpan="9" Orientation="Horizontal" HorizontalAlignment="Right">
<Button Name="btnsave" Command="{Binding DataContext.SaveUDFactors,ElementName= FactorsListBox}" Content="Save" IsEnabled="{Binding Path=DisableSaveButton,Mode=TwoWay}" Margin="0,0,0,0"/>
<Button Name="btncancel" Command="{Binding DataContext.CancelCommand,ElementName= FactorsListBox}" Content="Cancel" IsEnabled="{Binding Path=DisableCancelButton,Mode=TwoWay}" Margin="10,0,0,0"/>
<Button Name="btndelete" Command="{Binding DataContext.DeleteUDFactors,ElementName= FactorsListBox}" Content="Delete" IsEnabled="{Binding Path=DisableDeleteButton,Mode=TwoWay}" Margin="10,0,0,0"/>
<Button Name="btnEdit" Command="{Binding DataContext.UpdateUDFactors,ElementName= FactorsListBox}" Content="Edit" IsEnabled="{Binding Path=DisableEditButton,Mode=TwoWay}" Margin="10,0,0,0"/>
</StackPanel>
</Grid>
</Grid>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer.Content>
</ScrollViewer>
</StackPanel>
</Grid>