2
默認情況下,WPF datagridtext顯示爲標籤,並在單擊時進入編輯狀態。有沒有辦法修改列,使文本框始終可見(而不是取決於點擊事件)? 在此先感謝, JPWPF datagridtextcolumn - 始終顯示文本框
默認情況下,WPF datagridtext顯示爲標籤,並在單擊時進入編輯狀態。有沒有辦法修改列,使文本框始終可見(而不是取決於點擊事件)? 在此先感謝, JPWPF datagridtextcolumn - 始終顯示文本框
我根據您在評論中的說明更新了我的答案。您可以爲單元格自己設置模板。以下是年齡列使用文本塊的示例。
XAML:
<Window x:Class="GridTest.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
Height="300" Width="300">
<StackPanel>
<Controls:DataGrid Name="dataGrid" AutoGenerateColumns="False" >
<Controls:DataGrid.Columns>
<Controls:DataGridTextColumn
Header="Name"
Binding="{Binding Path=Name}" />
<Controls:DataGridTemplateColumn Header="Age">
<Controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Age}" />
</DataTemplate>
</Controls:DataGridTemplateColumn.CellTemplate>
<Controls:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=Age}" />
</DataTemplate>
</Controls:DataGridTemplateColumn.CellEditingTemplate>
</Controls:DataGridTemplateColumn>
</Controls:DataGrid.Columns>
</Controls:DataGrid>
</StackPanel>
</Window>
後面的代碼:
using System;
using System.Collections.Generic;
using System.Windows;
namespace GridTest
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
dataGrid.ItemsSource = new List<Person>(
new Person[]
{
new Person("Bob", 30),
new Person("Sally", 24),
new Person("Joe", 17)
});
}
}
public class Person
{
public String Name { get; set; }
public int Age { get; set; }
public Person(String name, int age)
{
Name = name;
Age = age;
}
}
}
不,我是說,datagridtextcolumn是多態。第一個狀態是標籤。點擊標籤可啓用數據輸入。失去焦點將它切換回標籤。編輯特定行時,您只能看到文本框 - 我總是希望看到texbox – 2010-05-25 18:13:33