2010-10-12 61 views
1

我是wpf中的新成員。我有一個DataGrid形式wpftoolkit,我需要顯示模板按鈕被選中的行,只有當和記錄不WPF從模板綁定到數據網格

<dg:DataGrid AutoGenerateColumns="False" DockPanel.Dock="Top" 
       ItemsSource="{Binding Source={StaticResource Entries}}" 
       Name="dataGrid" > 

       <dg:DataGrid.Columns> 
        <dg:DataGridTextColumn Header="Term" Width="2*" Binding="{Binding Path=Term}"/> 
        <dg:DataGridTextColumn Header="Definition" Width="5*" Binding="{Binding Path=Definition}"/> 

        <dg:DataGridTemplateColumn Header=""> 
         <dg:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Button Click="btnRemove_Click">Remove</Button> 
          </DataTemplate> 
         </dg:DataGridTemplateColumn.CellTemplate> 
        </dg:DataGridTemplateColumn> 

       </dg:DataGrid.Columns> 
      </dg:DataGrid> 

如何使用DataGrid Visibility屬性綁定最後一個(新的記錄項)?

我未完全解決方案時未選擇行已禁用該按鈕:

<dg:DataGridTemplateColumn > 
         <dg:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Button Content="Remove" Click="btnRemove_Click" > 
            <Button.Style> 
             <Style TargetType="{x:Type Button}" > 
              <Setter Property="Visibility" Value="Hidden" /> 
              <Style.Triggers> 
               <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type dg:DataGridRow}}, Path=IsSelected}" Value="True"> 
                <Setter Property="Visibility" Value="Visible" /> 
               </DataTrigger> 
              </Style.Triggers> 
             </Style> 
            </Button.Style> 
           </Button> 
          </DataTemplate> 
         </dg:DataGridTemplateColumn.CellTemplate> 
        </dg:DataGridTemplateColumn> 

回答

0

一個解決方法是寫上被綁定到DataRow中的可見性屬性ValueConverter。在ValueConverter上檢查是否有新行,然後將可見性設置爲隱藏或可見。

+0

我該如何檢查這一行是否是新的。我沒有發現這個屬性,表明這一行是新的。如果我知道這個我寫了一個multidatatrigger。 – 2xMax 2010-10-12 17:02:52

+0

您可以使用DataRow.RowState屬性來檢查DataRowState是否爲DataRowState.Added。 – Viv 2010-10-12 17:44:34