2015-01-05 3 views
0

У меня небольшая проблема. В моем окне у меня есть GridView и на каждой строке GridView есть Button (кнопка является частью GridViewColumn.CellTemplate). Теперь я хочу, чтобы, когда я нажимаю Button, Popup следует открыть под нажатым Button.Bind Popup на кнопке в столбце GridView

Но как я могу связать Popup на Button в сетке, поскольку Button является динамическим (для каждой строки одной Button).

<Popup Name="popup_Zuordnungen"> 
     <controls:Anlagenzuordnung Grid.Row="3" x:Name="VertragsAnlagenPopup" Margin="0,20,0,0">  </controls:Anlagenzuordnung> 
</Popup> 

<ListView Grid.Row="1" Name="lv_Leistungserbringer" DataContextChanged="lv_Leistungserbringer_DataContextChanged" SelectionChanged="lv_Leistungserbringer_SelectionChanged" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:VertragsLeistungserbringerZuordnung}}, Path=DataSource}" Height="150" VerticalAlignment="Bottom"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="ID"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=ID}" Width="40" /> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 

       <GridViewColumn Header="Bezeichnung"> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=Beschreibung}" Width="500" /> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 

       <GridViewColumn> 
        <GridViewColumn.CellTemplate> 
         <DataTemplate> 
          <Button Content="Zuordnungen anzeigen" Name="cmd_Zuordnungen"/> 
         </DataTemplate> 
        </GridViewColumn.CellTemplate> 
       </GridViewColumn> 
      </GridView> 
     </ListView.View> 
    </ListView> 

Кнопка находится в последней колонке.

Кабина везде поможет мне?

+0

bind, который всплывающее окно ...? –

+0

Сообщение обновлено. –

+0

Используйте кнопку 'Command' на кнопке, покажите всплывающее окно на обработчике обработанных событий .... –

ответ

1

Это Window с кодом-сзади?

В этом случае, вы можете просто добавить событие щелчка на кнопке (в DataTemplate) и обрабатывать размещение всплывающего в обработчик события:

XAML:

... 
<DataTemplate> 
    <Button Content="Zuordnungen anzeigen" Name="cmd_Zuordnungen" 
      Click="cmd_Zuordnungen_Click" /> 
</DataTemplate> 

Код:

private void cmd_Zuordnungen_Click(object sender, RoutedEventArgs e) 
{ 
    popup_Zuordnungen.IsOpen = false; 
    popup_Zuordnungen.PlacementTarget = (Button)sender; 
    popup_Zuordnungen.IsOpen = true; 
} 
+0

Это работает, спасибо. –

Смежные вопросы