基于某些条件的绑定模式 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
我正在尝试根据某些条件设置绑定模式。例如,我想在添加数据时将绑定模式设置为 "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