2017-09-20 11 views
0

すべての行に表示されるポップアップボックスがあり、そのポップアップをクリックすると、選択した行の詳細が表示されます。選択した行の値を取得できましたが、ポップアップボックスのコントロールにバインドすることができません。DataGridの選択された行の値をポップアップボックス

<DataGrid x:Name="CRDataGrid" AutoGenerateColumns="False" SelectionMode="Single" SelectedItem="{Binding SelectedCR}" FontSize="14" CanUserAddRows="False" ItemsSource="{Binding crentities}" 
CanUserDeleteRows="False" md:DataGridAssist.ColumnHeaderPadding="4" md:DataGridAssist.CellPadding="4" SelectionUnit="FullRow" MouseDoubleClick="DataGrid_MouseDoubleClick" RowDetailsVisibilityMode="VisibleWhenSelected" HeadersVisibility="All" Grid.ColumnSpan="2" Grid.Row="1" Margin="20" > 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Title" IsReadOnly="True" Binding="{Binding LogName}" Width="80" /> 
     <DataGridTextColumn Header="MUIdentifier" IsReadOnly="True" Binding="{Binding MU_Identifier}" Width="100" /> 
     <DataGridTextColumn Header="Status" IsReadOnly="True" Binding="{Binding Status}" Width="80" /> 
     <DataGridTextColumn Header="RequestType" IsReadOnly="True" Binding="{Binding RequestType}" Width="100" /> 
     <DataGridTextColumn Header="DateTime" IsReadOnly="True" Binding="{Binding Create_Date,TargetNullValue='-'}" Width="100" /> 
     <DataGridTextColumn Header="SoftwareVersion" IsReadOnly="True" Binding="{Binding SW_Version}" Width="200" /> 
     <DataGridTemplateColumn > 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <md:PopupBox DockPanel.Dock="Right" PlacementMode="BottomAndAlignRightEdges" StaysOpen="True"> 
         <md:PopupBox.ToggleContent> 
          <md:PackIcon Kind="DotsHorizontal" Margin="4 0 4 0" Width="24" Height="24" 
           Foreground="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=md:PopupBox}, Path=Foreground}" /> 
         </md:PopupBox.ToggleContent> 
         <TextBox Grid.Column="1" Grid.Row="1" Text="{Binding ElementName=CRDataGrid, Path= SelectedCR.MU_Identifier}" /> 
        </md:PopupBox> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
    </DataGrid.Columns> 
</DataGrid> 
+0

ポップアップは通常、要素が配置されているVisualTreeと同じではないため、RelativeSourceは何も検索しません。親のデータを使用したい場合は、バインディングを 'PlacementTarget'(またはあなたの特定の実装で呼び出されているもの、btwというストックには見えません。どちらを使用していますか?)経由でナビゲートする必要があります。 –

+0

私はmaterialdesignポップアップボックスを使用しています。これはネームスペースxmlns:md = "http://materialdesigninxaml.net/winfx/xaml/themes"です。配置ターゲットを確認します –

答えて

1

<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding ElementName=CRDataGrid, Path= SelectedCR.MU_Identifier}" /> 

ではなく

<TextBox Grid.Column="1" Grid.Row="1" Text="{Binding ElementName=CRDataGrid, Path= SelectedItem.MU_Identifier}" /> 

をすべきではありませんか?

+0

素晴らしいことに、これも私のviewmodelに反映されています。私たちが要素名でバインドしている場合は、その要素タグをバインドする必要があります。 –

関連する問題