Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# &引用;双向绑定需要路径或XPath“;尝试编辑DataGrid列时_C#_Wpf_Datagrid_Multibinding - Fatal编程技术网

C# &引用;双向绑定需要路径或XPath“;尝试编辑DataGrid列时

C# &引用;双向绑定需要路径或XPath“;尝试编辑DataGrid列时,c#,wpf,datagrid,multibinding,C#,Wpf,Datagrid,Multibinding,我有一个DataGrid,在其中一列中进行多重绑定。只需要一点背景——我有一个控件(AngleSelectionControl),用户可以选择要在数据网格中显示的单位(度或弧度)。使用下面的代码,Roll2列显示存储在模型中的值(度)。“滚动”列显示的是给定选定单位(度或弧度)的正确值。这一切都有效。我还可以更改Roll2列的值,并以选定的单位更新和显示Roll列。但是,当我试图编辑Roll列(在单元格中双击)时,调试器会显示异常:“双向绑定需要路径或XPath”。我错过了什么 <Data

我有一个DataGrid,在其中一列中进行多重绑定。只需要一点背景——我有一个控件(AngleSelectionControl),用户可以选择要在数据网格中显示的单位(度或弧度)。使用下面的代码,Roll2列显示存储在模型中的值(度)。“滚动”列显示的是给定选定单位(度或弧度)的正确值。这一切都有效。我还可以更改Roll2列的值,并以选定的单位更新和显示Roll列。但是,当我试图编辑Roll列(在单元格中双击)时,调试器会显示异常:“双向绑定需要路径或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>

尝试将第二个绑定的
路径
属性设置为“.”:

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

尝试将第二个绑定的
路径
属性设置为“.”:

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


这很有效。谢谢为什么它以一种方式工作(读)而不是另一种方式工作(写)?因为DataGrid要求绑定实际上有一个路径,以便编辑功能工作。这是有效的。谢谢为什么它以一种方式工作(读)而不是另一种方式工作(写)?因为DataGrid要求绑定实际上有一个路径,以便编辑功能工作。