1

以下を含む DataTemplate を作成しました: TextBlock と Slider (x:Name="_score") を水平スタックパネルに配置しました。TextBlock は新しい ObservableCollection を参照します。ここで、クラス Category には TextBlock テキストである文字列が含まれています。7 つの項目を持つ ListView は DataTemplate を使用するため、ウィンドウには 7 つのスライダーがあります。

Slider _score の値を変更するたびに、すべての Slider の値の合計で TextBlock を更新したいと考えています。スライダーが異なれば、ユーザーが選択する値も異なります。ValueChanged="_slidScore" のイベント ハンドラーがあります。

スライダーを互いに区別して、各スライダーの合計値を追加できますか?

<Page.Resources>
        <!-- TODO: Delete this line if the key AppName is declared in App.xaml -->
        <x:String x:Key="AppName">Questionnaire</x:String>
        <DataTemplate x:Key="_itemTemplate">
            <Border BorderBrush="Gainsboro" BorderThickness="4">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Margin="8,0,8,0" FontSize="18" Width="200" VerticalAlignment="Center" TextWrapping="Wrap" Text="{Binding crit}"/>
                    <StackPanel>
                                        <Slider Margin="10,0,10,0" VerticalAlignment="Center" Value="0" Maximum="5" Minimum="0" TickFrequency="1" TickPlacement="Outside" x:Name="_score" Width="641" ValueChanged="_slidScore"/>
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                        <TextBlock VerticalAlignment="Center" Text="Rating: " FontSize="24"/>
                        <TextBlock VerticalAlignment="Center" Margin="10,0,0,0" Text="{Binding Value, ElementName=_score}" FontSize="24"/>
                    </StackPanel>
                </StackPanel>
                </StackPanel>
            </Border>
        </DataTemplate>
    </Page.Resources>


....
in the main grid:

        <Border Grid.Row="1" BorderBrush="Red" BorderThickness="5">
            <TextBlock Text="how often have you..." TextWrapping="Wrap" FontWeight="Bold" FontSize="20" VerticalAlignment="Center"/>
        </Border>
        <ListView x:Name="_listView" Grid.Row="2" ItemTemplate="{StaticResource _itemTemplate}" SelectionMode="None" HorizontalContentAlignment="Stretch"/>
        <TextBlock Grid.Row="2" Grid.Column="1" x:Name="_result" FontSize="70"/>

...

in codebehind file



//list to populate the TextBlock in DataTemplate

_listView.ItemsSource = new ObservableCollection<Category>
            {
                new Category{crit = "1231231231231231231?"},
                new Category{crit = "asdfafhadgfjargfjagj?"},
                new Category{crit = "qerklhjyahkildfjkladnhjkla?"},
                new Category{crit = "13490p76812390-qhjsedhjklg?"},
                new Category{crit = "asdfasdgq3e45uq345u?"},
                new Category{crit = "q3490u8yq38945yasdjiofhj?"},
                new Category{crit = "13406923789045whjioerghjkla?"}
            };



    class Category
    {
        public string crit { get; set; }
    } 
4

2 に答える 2