首页>Program>source

我设法得到了 DataGrid 显示用于添加新项目的新行。 我现在面临的问题是我想要wPF DataGrid其余部分中的数据 只读,只有新行是可编辑的。

目前,这就是我的 DataGrid 看起来。

<DataGrid AutoGenerateColumns="False" Name="DataGridTest" CanUserAddRows="True" Grid.Row="2" ItemsSource="{Binding TestBinding}" >
    <DataGrid.Columns>        
        <DataGridTextColumn Header="Line" IsReadOnly="True" Binding="{Binding Path=Test1}" Width="50"></DataGridTextColumn>
        <DataGridTextColumn Header="Account" IsReadOnly="True"  Binding="{Binding Path=Test2}" Width="130"></DataGridTextColumn>               
    </DataGrid.Columns>
</DataGrid>

但是,由于我将列保持为只读,因此新行也添加为只读,这是我不想要的。

最新回答
  • 3天前
    1 #

    尝试此MSDN博客

    另外,请尝试以下示例:

    Xaml:

      <DataGrid AutoGenerateColumns="False" Name="DataGridTest" CanUserAddRows="True" ItemsSource="{Binding TestBinding}" Margin="0,50,0,0" >
            <DataGrid.Columns>
                <DataGridTextColumn Header="Line" IsReadOnly="True" Binding="{Binding Path=Test1}" Width="50"></DataGridTextColumn>
                <DataGridTextColumn Header="Account" IsReadOnly="True"  Binding="{Binding Path=Test2}" Width="130"></DataGridTextColumn>
            </DataGrid.Columns>
        </DataGrid>
        <Button Content="Add new row" HorizontalAlignment="Left" Margin="0,10,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_1"/>
    

    CS:

    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            var data = new Test { Test1 = "Test1", Test2 = "Test2" };
            DataGridTest.Items.Add(data);
        }
    }
    public class Test
    {
        public string Test1 { get; set; }
        public string Test2 { get; set; }
    }
    

  • 3天前
    2 #

    只需使用此 Style DataGridRow的 :

    <DataGrid.RowStyle>
            <Style TargetType="DataGridRow">
                <Setter Property="IsEnabled" Value="{Binding RelativeSource={RelativeSource Self},Path=IsNewItem,Mode=OneWay}" />
            </Style>
    </DataGrid.RowStyle>
    

  • python:将unixtime转换为datetime对象,然后再次转换(成对的时间转换函数对)
  • message queue:支持Redis Pub / Sub上的竞争消费者吗?