【问题标题】:"Two-way binding requires Path or XPath" when attempting edit a DataGrid column尝试编辑 DataGrid 列时“双向绑定需要路径或 XPath”
【发布时间】:2017-03-13 17:56:53
【问题描述】:

我有一个 DataGrid,我在其中一列中进行 MultiBinding。只是一点背景——我有一个控件(AngleSelectionControl),用户正在选择要在数据网格中显示的单位(度数或弧度)。使用下面的代码,Roll2 列显示存储在模型中的值(度)。滚动列显示给定所选单位(度或弧度)的正确值。这一切都有效。我还可以更改 Roll2 列的值,并且 Roll 列会更新并以选定的单位显示。但是,当我尝试编辑 Roll 列(在单元格中双击)时,调试器会显示异常“双向绑定需要 Path 或 XPath”。我错过了什么?

<DataGrid Name="StationConfigurationsDataGrid" Grid.Column="1" Height="150" Width="420" CanUserAddRows="True" AutoGenerateColumns="False" Grid.ColumnSpan="2" ItemsSource="{Binding Path=StationConfigurations}" SelectionMode="Single"  SelectedItem="{Binding SelectedConfiguration}" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">
    <DataGrid.Columns>
    <DataGridTextColumn MinWidth="100" Width="Auto" Header="Roll">
        <DataGridTextColumn.Binding>
        <MultiBinding Converter="{StaticResource AngleMultiValueConverter}" ValidatesOnExceptions="True" StringFormat="f" Mode="TwoWay">
            <Binding Path="Roll" FallbackValue="-99.99"/>
            <Binding Source="{x:Static unitTypes:AngleSelectionType.Degrees}"/>
            <Binding ElementName="AngleSelectionControl" Path="DisplayValueType"/>
            <Binding ElementName="AngleSelectionControl" Path="ValueFormat"/>
        </MultiBinding>
        </DataGridTextColumn.Binding>
    </DataGridTextColumn>
    <DataGridTextColumn MinWidth="100" Width="Auto" Header="Roll2" Binding="{Binding Roll, ValidatesOnExceptions=True, StringFormat=f}"></DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

【问题讨论】:

    标签: c# wpf datagrid multibinding


    【解决方案1】:

    尝试将第二个绑定的Path属性设置为'.':

    <Binding Path="." Source="{x:Static unitTypes:AngleSelectionType.Degrees}"/>
    

    【讨论】:

    • 那行得通。谢谢!为什么它以一种方式(读取)而不是另一种方式(写入)工作?
    • 因为 DataGrid 要求绑定实际上具有编辑功能工作的路径。
    猜你喜欢
    • 1970-01-01
    • 2014-04-30
    • 2011-11-29
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2014-11-29
    • 1970-01-01
    相关资源
    最近更新 更多