基于某些条件的绑定模式 WPF

Binding Mode based on some condition WPF

我正在尝试根据某些条件设置绑定模式。例如,我想在添加数据时将绑定模式设置为 "OneWayToSource",但在使用相同的 XAML 文件更新数据时将绑定模式设置为 "TwoWay"。简而言之,我不想在添加模式下显示数据,但想在更新模式下显示它。

 <DataGridTemplateColumn Header="Selling Price" Width="Auto" KeyboardNavigation.IsTabStop="False" IsReadOnly="True" MinWidth="120">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <gc:CTextBox Text="{Binding Path=SellingPrice,Mode=OneWayToSource,UpdateSourceTrigger=PropertyChanged,StringFormat=N2}"  VerticalAlignment="Center" HorizontalAlignment="Center" Style="{DynamicResource TextBoxesCustomStyle}" MinWidth="130" TextWrapping="NoWrap"  IsEnabled="{Binding IsNew}"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

这是我的XAML。我尝试了不同的方法并搜索了互联网,但没有幸运地解决这个问题。

您可以使用 CellTemplate 显示数据,并在单元格处于编辑模式时在 CellEditingTemplate 中使用不同的 DataTemplate。

在 MSDN 中有一个很好的例子: https://msdn.microsoft.com/en-us/library/system.windows.controls.datagridtemplatecolumn.celleditingtemplate(v=vs.110).aspx