Ширина столбцов синхронизации WPF DataGrid

Кажется, вы ищете все перестановок с повторением всех элементов в $arr2 с длиной числа элементов в $arr1.

Если это так, должно работать следующее:

 1) {
            yield from pwr($elements, $k, $idx + 1, $result);
        }
        else {
            yield $result;
        }
    }
}

function gen(array $keys, array $values): \Generator
{
    foreach (pwr($values, \count($keys)) as $set) {
        yield array_combine($keys, $set);
    }
}

// this is just to test the result in a more *visual* way
foreach (gen(range('a', 'j'), [true, false]) as $case) {
    foreach ($case as $k => $v) {
        echo $v ? $k : '_';
    }

    echo "\n";
}

Чтобы избежать проблем с памятью, вы можете использовать yield , но если массив абсолютно необходим, используйте [114 ] .

Очевидно, что это растет очень быстро (\count($arr2) ** \count($arr1)), поэтому будьте осторожны при использовании iterator_to_array.

Демонстрация: https://3v4l.org/l5PRo

12
задан Dave Clemmer 13 June 2013 в 16:41
поделиться

2 ответа

Ну, я не думаю, что это - возможное использование прямой XAML, но я все еще чувствую, что это должно потому что DataGridColumn действительно происходит из DependencyObject. Я действительно находил способ сделать это программно все же. Я не взволнован об этом, но это работает:

DataGridColumn.WidthProperty.AddValueChanged(upperCol, delegate
{
    if (changing) return;
    changing = true;
    mainCol.Width = upperCol.Width;
    changing = false;
});
DataGridColumn.WidthProperty.AddValueChanged(mainCol, delegate 
{ 
    if (changing) return;
    changing = true;
    upperCol.Width = mainCol.Width; 
    changing = false; 
});

public static void AddValueChanged(this DependencyProperty property, object sourceObject, EventHandler handler)
{
    DependencyPropertyDescriptor dpd = DependencyPropertyDescriptor.FromProperty(property, property.OwnerType);
    dpd.AddValueChanged(sourceObject, handler);
}
14
ответ дан 2 December 2019 в 07:22
поделиться

Я попробовал это:

<tk:DataGrid Width="100" Height="100" x:Name="Grid1" Grid.Column="0">
   <tk:DataGrid.Columns>
      <tk:DataGridTextColumn x:Name="Column1" Width="50"/>
   </tk:DataGrid.Columns>
</tk:DataGrid>
<tk:DataGrid Width="100" Height="100" x:Name="Grid2" Grid.Column="1">
   <tk:DataGrid.Columns>
     <tk:DataGridTextColumn x:Name="Column1Copy" Width="{Binding Mode=TwoWay, Path=Columns[0].ActualWidth, ElementName=Grid1}"/>
     </tk:DataGrid.Columns>
</tk:DataGrid>

Однако Это похоже с тех пор DataGridColumns не происходят из FrameworkElement но вместо этого произойдите из DependencyObject, привязка этим способом не доступна.

1
ответ дан 2 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: