WPF:在单元格值更改后获取我的对象索引

时间:2015-07-03 13:27:13

标签: wpf slider

所以我在Slider

中有ListView
<DataTemplate x:Key="MyDataTemplate2">
    <Grid Margin="-6" >
        <Slider Name="sliderColumn" HorizontalAlignment="Left" VerticalAlignment="Center" TickPlacement="None"
                Minimum="0" Maximum="50" Value="1" Style="{StaticResource SliderStyle}" Width="80"
                TickFrequency="1" IsSnapToTickEnabled="True"/>
            <TextBlock Text="{Binding Path=Value, ElementName=sliderColumn, StringFormat={}x{0}}" FontSize="11" Foreground="White" 
                       VerticalAlignment="Center" HorizontalAlignment="Right"/>
    </Grid>
</DataTemplate>

<GridViewColumn x:Name="SpeedCell"  Width="100" Header="Speed" CellTemplate="{StaticResource MyDataTemplate2}" />

在此Slider值更改后,我可以获得新值:

private void sliderColumn_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    double val = e.NewValue;
}

但是我仍然缺少我需要的最重要的信息:它的Slider值改变的对象的索引号。

我需要索引的原因是因为我的ListView已满了我的对象,这些对象在RadObservableCollection内,在此Slider值更改后我想设置新的值基础关于索引号。

有关如何查找此索引的任何建议吗?

1 个答案:

答案 0 :(得分:0)

你想要做什么来将你的价值写回你存储数据的对象中。在你的情况下,你想把它写入列表条目DataContext的属性中。这样做非常简单。您只需将Slider.Value绑定到支持类的属性即可。

现在我假设您将列表条目绑定到的类(因此,ObservableCollection上的类具有存储SliderValue的属性int。如下所示:

public int SliderValue { get; set; }

因此,您将滑块绑定到支持类中的特定属性。

<Slider Value="{Binding Path=SliderValue}" />

我从滑块标签中删除了所有格式代码,以便专注于您需要添加的相关位。

编辑:关于您的上一条评论,SliderValue将是Num