Привязать указанный c флажок столбца флажок в wpf - PullRequest
0 голосов
/ 16 марта 2020

Я делаю первые шаги в wpf и пытаюсь поддерживать некоторый код. Постарайтесь быть очень простыми в своих объяснениях c, я постараюсь использовать как можно более правильные определения.

<TextBox Background="#ECECECEC" 
               Text="Bla bla"
               Visibility="{Binding ElementName=UseCwdCheckBox , Path=Context.SettingsHandler.UseCWDForTyping, Converter={StaticResource VisibleIfTrueConverter}}"   >
</TextBox>

На данный момент текстовое поле выше видно, если установлен какой-либо флажок. Но это не намеченное поведение. Я хочу привязать указанный c флажок (ниже) DataGridCheckBoxColumn с именем «Включено». Однако я не уверен в его месте в колонке. Однако я могу быть уверен, что следующий столбец (в той же таблице данных), который называется «имена», будет иметь имя = «Джон», т. Е. Все в одном предложении: я хочу, чтобы текстовое поле стало видимым, если флажок Джона проверено.

             <DataGrid.Columns>
                    <DataGridCheckBoxColumn Header="Enabled"
                                            Binding="{Binding Enabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                            Width="60">
                        <DataGridCheckBoxColumn.ElementStyle>
                            <Style TargetType="CheckBox">
                                <Setter Property="VerticalAlignment" Value="Center" />
                                <Setter Property="HorizontalAlignment" Value="Center" />
                            </Style>
                        </DataGridCheckBoxColumn.ElementStyle>
                    </DataGridCheckBoxColumn>

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 18 марта 2020

Вы можете использовать код для CheckBox в первом столбце Datagrid и TextBox.

  private void Button_Click(object sender, RoutedEventArgs e)
        {
            Binding binding = new Binding() { Source= (dataGrid1.Columns[0].GetCellContent(dataGrid1.Items[0]) as CheckBox) ,Path=new PropertyPath ("IsChecked")};
            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.Mode = BindingMode.TwoWay;
            binding.Converter = new VisibleIfTrueConverter();
            textBox1.SetBinding(TextBox.VisibilityProperty, binding);

        }
...