Кажется, вы ищете все перестановок с повторением всех элементов в $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
Ну, я не думаю, что это - возможное использование прямой 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);
}
Я попробовал это:
<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>
Однако Это похоже с тех пор DataGridColumn
s не происходят из FrameworkElement
но вместо этого произойдите из DependencyObject
, привязка этим способом не доступна.