双向绑定需要“Path”或“XPath”异常

Jack J Jun 24,496 信誉分 Microsoft 供应商
2024-01-30T08:35:45.8166667+00:00

你好 当我在数据网格中留下一个单元格时发生异常 - 但我不知道在哪里可以找到错误 复制

<DataGrid ItemsSource="{Binding}" ...
<DataGrid.Columns>
                <DataGridTextColumn Width="40" Header="ID" Binding="{Binding ID}" >
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="HorizontalAlignment" Value="Center" />
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>
                <DataGridTextColumn Width="250" Header="Name" Binding="{Binding Name}" >
                    <DataGridTextColumn.ElementStyle>
                        <Style TargetType="TextBlock">
                            <Setter Property="HorizontalAlignment" Value="Center" />
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>

我的 xaml 看起来像这样......这是背后的代码 复制

  InitializeComponent();
    dGrid.DataContext = DT.Datatable;

有什么想法吗? Note:此问题总结整理于:The bidirectional binding requires “Path” or “XPath” exception - Microsoft Q&A

Windows Presentation Foundation
Windows Presentation Foundation
.NET Framework 的一部分,它提供统一的编程模型,用于在 Windows 上构建业务线桌面应用程序。
124 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 47,421 信誉分 Microsoft 供应商
    2024-01-30T09:04:15.6633333+00:00

    你好,我在 xmal 中使用了您的代码,后台代码使用以下代码。当我在数据网格中留下一个单元格时,不会发生异常。是我做得少了还是和你不一样?请向我展示更多相关步骤和代码来重现和分析问题。 xaml 的代码如下:

    <Grid>  
            <DataGrid x:Name="dGrid" ItemsSource="{Binding}" AutoGenerateColumns="False"  >  
                <DataGrid.Columns>  
                    <DataGridTextColumn Header="ID" Width="80" Binding="{Binding ID}"  >  
                        <DataGridTextColumn.ElementStyle>  
                            <Style TargetType="TextBlock">  
                                <Setter Property="HorizontalAlignment" Value="Center" />  
                            </Style>  
                        </DataGridTextColumn.ElementStyle>  
                    </DataGridTextColumn>  
                    <DataGridTextColumn Header="Name" Width="80" Binding="{Binding Name}">  
                        <DataGridTextColumn.ElementStyle>  
                            <Style TargetType="TextBlock">  
                                <Setter Property="HorizontalAlignment" Value="Center" />  
                            </Style>  
                        </DataGridTextColumn.ElementStyle>  
                    </DataGridTextColumn>  
                </DataGrid.Columns>  
            </DataGrid>  
      </Grid>  
    

    xaml.cs 的代码如下:

    using System.Data;  
    using System.Windows;  
    namespace BidirectionalBindingException  
    {  
      public partial class MainWindow : Window  
      {   
        public MainWindow()  
        {  
          InitializeComponent();  
          dGrid.DataContext = GetDummyData();  
        }  
        private static DataTable GetDummyData()  
        {  
          DataTable dt = new DataTable();  
          DataColumn ID = new DataColumn("ID", typeof(int));  
          dt.Columns.Add(ID);  
          dt.Columns.Add("Name", typeof(string));  
          dt.PrimaryKey = new DataColumn[] { ID };  
          dt.Rows.Add(1, "Name1");  
          dt.Rows.Add(2, "Name2");  
          return dt;  
        }  
      }  
    } 
    
    
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助