2013-09-12 4 views
0

Я хочу позиционировать Listview при изменении текста Datagridcell. У моего datagrid есть столбец, а именно Product, когда пользователь вводит что-то в этом столбце небольшое всплывающее окно списка с продуктами, поэтому пользователь может выбрать один продукт из списка, а продукт отображается в столбце Product datagrid. Моя проблема заключается в том, что я не могу позиционировать Listview возле ячейки, которую я редактирую.wpf Datagrid: Position Listview, когда Datagridcell textchange

Мой XAML является:

<!--My datagrid--> 
<my:DataGrid Name="dgvSales" BeginningEdit="dgvSales_BeginningEdit" VirtualizingStackPanel.IsVirtualizing="False" AutoGenerateColumns="False" Margin="13,150,9,117" KeyDown="dgvSales_KeyDown" MouseDown="dgvSales_MouseDown" PreparingCellForEdit="dgvSales_PreparingCellForEdit" > 
        <my:DataGrid.Columns> 
         <my:DataGridTextColumn x:Name="naam" Header="Code" Width="120" Binding="{Binding ProductCode}"></my:DataGridTextColumn> 
         <my:DataGridTextColumn Header="Product Name" Width="200" Binding="{Binding ProductName}"></my:DataGridTextColumn> 
         <my:DataGridComboBoxColumn Header="Unit" Width="100"></my:DataGridComboBoxColumn> 
         <my:DataGridTextColumn Header="Purchase Rate" Width="100" Binding="{Binding PurchaseRate}"></my:DataGridTextColumn> 
         <my:DataGridTextColumn Header="Qty" Width="100" Binding="{Binding Qty}"></my:DataGridTextColumn> 
         <my:DataGridTextColumn Header="Amount" Width="100" Binding="{Binding Amount}"></my:DataGridTextColumn> 
        </my:DataGrid.Columns> 
       </my:DataGrid> 

<!--My listview--> 
<ListView Height="161" ItemsSource="{Binding}" Name="lstvwProductCode" VerticalAlignment="Bottom" Width="388"> 
        <ListView.View> 
         <GridView> 
          <GridViewColumn DisplayMemberBinding="{Binding Path=Record_Id}" Header="Record ID" Width="0" /> 
          <GridViewColumn DisplayMemberBinding="{Binding Path=Product_Code}" Header="Pcode" Width="110" /> 
          <GridViewColumn DisplayMemberBinding="{Binding Path=Product_Name}" Header="Product" Width="180" /> 
         </GridView> 
        </ListView.View> 
       </ListView> 

ответ

0

Почему бы вам не поставить Listview в RowDetailsTemplate вашего DataGrid и установите привязки соответственно для заполнения ListView.

  <DataGrid.RowDetailsTemplate> 
       <DataTemplate> 
        <ListView Height="161" ItemsSource="{Binding}" Name="lstvwProductCode" VerticalAlignment="Bottom" Width="388"> 
        <ListView.View> 
         <GridView> 
          <GridViewColumn DisplayMemberBinding="{Binding Path=Record_Id}" Header="Record ID" Width="0" /> 
          <GridViewColumn DisplayMemberBinding="{Binding Path=Product_Code}" Header="Pcode" Width="110" /> 
          <GridViewColumn DisplayMemberBinding="{Binding Path=Product_Name}" Header="Product" Width="180" /> 
         </GridView> 
        </ListView.View> 
       </ListView> 
       </DataTemplate> 
      </DataGrid.RowDetailsTemplate> 
+0

когда пользователь выбирает элемент из ListView элемент показан на название продукта колонке моего DataGrid и ListView должен быть невидимым, как это сделать ...? – Mussammil

+0

Когда элемент выбран из списка, элемент должен отображаться в первом столбце «Имя продукта» документа данных, а также код продукта в столбце «код продукта» таблицы данных, как добиться этого сэра? – Mussammil

+0

Мне нужно будет увидеть ваш пользовательский интерфейс и модельный код, чтобы помочь вам. Вы можете поделиться этим – Nitin

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