里面的DataTemplate一个datagridtemplatecolumn的另一个控制和转换器的绑定数据元素名称不点火

<UserControl.Resources> <local:ColorConverter x:Key="cc"></local:ColorConverter> </UserControl.Resources> <sdk:DataGrid x:Name="gridAllContacts" Grid.Row="1" Grid.Column="0" Width="500" Height="300" AutoGenerateColumns="False"> <sdk:DataGrid.Columns> <sdk:DataGridTemplateColumn Header="Name"> <sdk:DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel> <TextBox Text="{Binding Path=Name, Mode=TwoWay}" Background="{Binding ElementName=columns2, Path=SelectedIndex, Mode=TwoWay, Converter={StaticResource cc}}" ></TextBox> </StackPanel> </DataTemplate> </sdk:DataGridTemplateColumn.CellTemplate> </sdk:DataGridTemplateColumn> </sdk:DataGrid.Columns> </sdk:DataGrid> <ComboBox Name="columns2" VerticalAlignment="Center" Height="25" HorizontalAlignment="Left" Margin="150,0,0,0" SelectedIndex="0"> <ComboBoxItem>Name</ComboBoxItem> <ComboBoxItem>School</ComboBoxItem> <ComboBoxItem>ContactID</ComboBoxItem> </ComboBox>

里面的DataTemplate文本框的对特定列背景应该根据所选择的组合框项目进行着色。 但现在的转换器不点火都当我把一个破发点我的转换器类中。 我读的地方,你需要一个DataContextProxy,如果是这样我将如何做呢?

--------------解决方案-------------

你可以尝试和移动组合框到用户控件的资源(将名称更改为X:密钥)。

然后用ContentPresenter,其内容是在资源组合框代替原来的组合框的位置。

DataGrid的绑定需要进行修改,以背景=“{绑定源= {StaticResource的comboBoxKeyInResources}”,路径= SelectedIndex的...

通过这种方式,转换器结合应该工作。

我得到了它的权利做这个工作这正是我想要的方式:

DataGridCell tempCell = new DataGridCell();

Style cellStyle = new Style();
cellStyle.TargetType = tempCell.GetType();
cellStyle.Setters.Add(new Setter(DataGridCell.ForegroundProperty, new SolidColorBrush(Colors.Red)));
gridAllContacts.Columns[0].CellStyle = cellStyle;

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.434 (s). 10 q(s)