0
열 중 하나에서 MultiBinding을 수행하고있는 DataGrid가 있습니다. 약간의 배경 - 사용자가 데이터 그리드에 표시 할 단위 (도 또는 라디안)를 선택하는 컨트롤 (AngleSelectionControl)이 있습니다. 아래 코드에서 Roll2 열은 모델에 저장된 값 (도)을 표시합니다. 롤 단위는 선택된 단위 (도 또는 라디안)에 대해 올바른 값을 표시합니다. 그건 모두 작동합니다. Roll2 열 값을 변경할 수도 있고 Roll 열이 선택된 단위로 업데이트되고 표시됩니다. 그러나 롤 열 (셀에서 두 번 클릭)을 편집하려고하면 디버거에 "양방향 바인딩에 경로 또는 XPath가 필요합니다"라는 예외가 표시됩니다. 내가 뭘 놓치고 있니?DataGrid 열을 편집 할 때 "양방향 바인딩에 경로 또는 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>
하는 일이. 감사! 왜 그것은 한 방향 (읽기)으로 작동하고 다른 하나는 작동하지 않는 (쓰기) 것입니까? – bsh152s
DataGrid에서는 바인딩이 실제로 편집 기능이 작동하는 경로가 있어야하기 때문에. – mm8