0
Wpf Datagridに編集、更新、キャンセルボタンがあります。最初に編集ボタンが表示され、編集ボタンの更新とキャンセルボタンがクリックされたときに表示されます。Wpf Datagridで選択した行の追加ボタンを表示する方法
ここで問題となるのは、編集ボタンをクリックすると、更新およびキャンセルボタンがグリッド内のすべての行に表示されます。私はそれがグリッド内の選択された行に対してのみ表示されるようにします。
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Name="Stkbuttons">
<Button Name="BtnEdit" Content="Edit" Width="Auto" Click="BtnEdit_Click" Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=BtnEditVisibility}"></Button>
<Button Name="BtnUpdate" Content="Update" Width="Auto" Click="BtnUpdate_Click" Visibility="{Binding RelativeSource= {RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=BtnUpdateVisibility}"></Button>
<Button Name="BtnCancel" Content="Cancel" Width="Auto" Click="BtnCancel_Click" Visibility="{Binding RelativeSource= {RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=BtnCancelVisibility}"></Button>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
public static readonly DependencyProperty BtnEditVisibilityProperty = DependencyProperty.Register("BtnEditVisibility", typeof(Visibility), typeof(OrderExecution));
public Visibility BtnEditVisibility
{
get { return (Visibility)GetValue(BtnEditVisibilityProperty); }
set { SetValue(BtnEditVisibilityProperty, value); }
}
public static readonly DependencyProperty BtnUpdateVisibilityProperty = DependencyProperty.Register("BtnUpdateVisibility", typeof(Visibility), typeof(OrderExecution));
public Visibility BtnUpdateVisibility
{
get { return (Visibility)GetValue(BtnUpdateVisibilityProperty); }
set { SetValue(BtnUpdateVisibilityProperty, value); }
}
public static readonly DependencyProperty BtnCancelVisibilityProperty = DependencyProperty.Register("BtnCancelVisibility", typeof(Visibility), typeof(OrderExecution));
public Visibility BtnCancelVisibility
{
get { return (Visibility)GetValue(BtnCancelVisibilityProperty); }
set { SetValue(BtnCancelVisibilityProperty, value); }
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// By default display editButton
BtnUpdateVisibility = Visibility.Collapsed;
BtnCancelVisibility = Visibility.Collapsed;
}
private void BtnUpdate_Click(object sender, RoutedEventArgs e)
{
BtnEditVisibility = Visibility.Visible;
BtnUpdateVisibility = Visibility.Collapsed;
BtnCancelVisibility = Visibility.Collapsed;
}
private void BtnEdit_Click(object sender, RoutedEventArgs e)
{
BtnEditVisibility = Visibility.Collapsed;
BtnUpdateVisibility = Visibility.Visible;
BtnCancelVisibility = Visibility.Visible;
}
これはおそらくあなたがこれをやったかを知ることは役に立ちます... –