Данные связывают имя элемента другого элемента управления внутри таблицы данных столбца данных, и преобразователь не запускается - PullRequest
0 голосов
/ 08 января 2012
<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>

Фон текстового поля внутри таблицы данных для определенного столбца должен быть окрашен в соответствии с выбранным элементом ComboBox. Но сейчас конвертер вообще не срабатывает, когда я ставлю точку останова внутри своего класса конвертеров. Я где-то читал, что вам нужен DataContextProxy, если да, то как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 10 января 2012

Я понял это правильно, сделав это так, как я хотел:

        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;
0 голосов
/ 09 января 2012

Вы можете попробовать переместить поле со списком в ресурсы UserControl (измените имя на x: Key).

Затем замените исходное расположение поля со списком на ContentPresenter, содержимое которого представляет собой поле со списком в ресурсах.

Привязка сетки данных должна быть изменена на Background = "{Binding Source = {StaticResource comboBoxKeyInResources}", Path = SelectedIndex ...

Таким образом должна работать привязка конвертера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...