2014-08-29 4 views
-1

Следующий код у меня был. Я использую привязку Listbox. В окне списка у меня есть кнопка для отправки. Возможность прокрутки Listbox элементов не удалось прокрутить кнопку. Кнопка доступна в нижней части экрана (а не в списке). Я хочу эту кнопку в нижней части списка ?.Как использовать ScrollViewer элементы управления при привязке?

<ScrollViewer VerticalScrollBarVisibility="Visible" Height="780" MaxHeight="1800" VerticalAlignment="Top"> 
    <ScrollViewer.Content> 
     <Grid Grid.Row="0" > 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto"/> 
      </Grid.RowDefinitions> 
      <ListBox Name="formDetails" ItemsSource="{Binding}" Grid.Row="0" Height="780" MaxHeight="1800"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Name="Text"> 
          <TextBlock Name="Txt_Question" 
           Text="{Binding Question, Mode=OneWay}"/> 
          <TextBox Name="TxTAnswer" 
           Text="{Binding Stringval, Mode=TwoWay}" 
           Visibility="{Binding DataType, Mode=OneWay, Converter={StaticResource TextConverter}}"/> 
          <CheckBox Name="BoolVal" 
           IsChecked="{Binding BoolVal, Mode=TwoWay}" 
           Visibility="{Binding DataType, Mode=OneWay, Converter={StaticResource YesNoConverter}}"/> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
      <Button Grid.Row="1" Click="Button_Click" Content="Submit"/> 
     </Grid> 
    </ScrollViewer.Content> 
</ScrollViewer> 

ответ

1

Попробуйте для кнопки в нижней части LISTBOX:

<ScrollViewer VerticalScrollBarVisibility="Visible" VerticalAlignment="Top"> 
     <StackPanel> 
      <ListBox Name="formDetails" ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Disabled"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Name="Text"> 
          <TextBlock Name="Txt_Question" 
         Text="{Binding Question, Mode=OneWay}"/> 
          <TextBox Name="TxTAnswer" 
         Text="{Binding Stringval, Mode=TwoWay}" 
         Visibility="{Binding DataType, Mode=OneWay, Converter={StaticResource TextConverter}}"/> 
          <CheckBox Name="BoolVal" 
         IsChecked="{Binding BoolVal, Mode=TwoWay}" 
         Visibility="{Binding DataType, Mode=OneWay, Converter={StaticResource YesNoConverter}}"/> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
      <Button Click="Button_Click" Content="Submit"></Button> 
     </StackPanel> 
    </ScrollViewer> 

для кнопки в нижней части страницы

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="0"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"></RowDefinition> 
     <RowDefinition Height="auto"></RowDefinition> 
    </Grid.RowDefinitions> 
    <ScrollViewer VerticalScrollBarVisibility="Visible" VerticalAlignment="Top"> 
     <StackPanel> 
      <ListBox Name="formDetails" ItemsSource="{Binding}" ScrollViewer.VerticalScrollBarVisibility="Disabled"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Name="Text"> 
          <TextBlock Name="Txt_Question" Text="{Binding Q}"></TextBlock> 
          <TextBox Name="TxTAnswer" Text="{Binding A}"></TextBox> 
          <CheckBox Name="BoolVal" IsChecked="{Binding Val}"></CheckBox> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 
     </StackPanel> 
    </ScrollViewer> 
    <Button Click="Button_Click" Content="Submit" Grid.Row="1"></Button> 
</Grid> 
+0

неспособный держать свиток в нижней части стр. и кнопка переопределяет элементы списка. – Dino

+0

сейчас попробуйте новый ответ. Я пробовал это. его работа –

+0

сработала или нет? –

0

несколько вещей:

  1. Вы определили свою кнопку как находящуюся в Grid.Row="1", которая d не существует. Вам нужно добавить вторую строку, иначе она появится только в той же строке, что и ListBox.
  2. Вся ваша страница находится в пределах ScrollViewer, это действительно то, что вы хотите? Если вы хотите, чтобы кнопка вне ScrollViewer затем просто обернуть ListBox внутри ScrollViewer, но это было бы своего рода бессмысленно, потому что ListBox имеет свой собственный ScrollViewer построен в.
Смежные вопросы