小编nul*_*xff的帖子

当datagrid-cell获得焦点时自动编辑WPF数据网格内容

我在WPF中有一个带有DataGridTextColumDataGridTemplateColum的数据网格.

<DataGridTextColumn Width="4*" IsReadOnly="True" x:Name="dataGridColumnDescription" 
Header="Description" Binding="{Binding Description}">
</DataGridTextColumn>

<DataGridTemplateColumn CellStyle="{StaticResource CellEditing}" IsReadOnly="False" Width="*" Header="Value" 
CellEditingTemplateSelector="{StaticResource myCellEditingTemplateSelectorValue}" 
CellTemplateSelector="{StaticResource myCellTemplateSelectorValue}">
</DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

CellTemplateSelectors返回一个带有TextBlock的DataTemplate,用于Celltemplate resp.CellEditing的TextBox!

<DataTemplate x:Key="dGridStringValueTemplate">
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding Path=Value}"/>
</DataTemplate>

<DataTemplate x:Key="dGridStringValueTemplateEditing">
    <TextBox TextAlignment="Center" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" BorderThickness="1" Text="{Binding Path=Value, UpdateSourceTrigger=LostFocus}"/>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

现在我想在DataGridCell获得焦点时自动聚焦TextBox.用户应该能够编辑TextBox内容而无需双击单元格.

我找到了这篇文章:

DataGrid提示与技巧:单击编辑 ,我可以获取当前DataGridCell,但是如何访问内容以使文本框成为编辑内容的焦点?

这是我的风格:

<Style x:Key="CellEditing" TargetType="{x:Type DataGridCell}">
    <EventSetter Event="PreviewMouseLeftButtonDown" Handler="myDataGridMain_PreviewMouseLeftButtonDown"></EventSetter>
</Style>
Run Code Online (Sandbox Code Playgroud)

这是我的事件处理程序:

private void myDataGridMain_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    DataGridCell cell = sender as DataGridCell;     // cell ist not null

    DataGridTemplateColumn col …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml datagrid

11
推荐指数
3
解决办法
2万
查看次数

使用 SQL Server 中的变量更改数据库名称和文件增长

我想通过 SQL 脚本更改数据库的文件增长。对于数据库名称,我想使用一个变量。

谁能帮我编写这个 SQL Server 脚本吗?

DECLARE @db_name nvarchar(200);

SELECT @db_name = name 
FROM sys.database_files 
WHERE type = 0;

PRINT @db_name;

ALTER DATABASE [@db_name] 
  MODIFY FILE ( NAME = @db_name, FILEGROWTH = 100MB)
Run Code Online (Sandbox Code Playgroud)

谢谢....

sql t-sql sql-server

4
推荐指数
1
解决办法
1839
查看次数

标签 统计

c# ×1

datagrid ×1

sql ×1

sql-server ×1

t-sql ×1

wpf ×1

xaml ×1