Как программно создать привязку WPF Grid.RowDefintion.Height
Это должно быть просто, но я застрял! Как создать следующую мультисвязку в коде и применить ее к заданному определению строки:
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition>
<RowDefinition.Height>
<MultiBinding Converter="{StaticResource MyMultiConverter}">
<Binding ElementName="obj1" Path="x"/>
<Binding ElementName="obj2" Path="y"/>
</MultiBinding>
</RowDefinition.Height>
</RowDefinition>
</Grid.RowDefinitions>
Спасибо!
1 ответ
Решение
Там вы идете:
//Create binding
var binding = new MultiBinding
{
Converter = new MyMultiConverter()
};
binding.Bindings.Add(new Binding("x") { ElementName = "obj1" });
binding.Bindings.Add(new Binding("y") { ElementName = "obj2" });
//create RowDefinition
var definition = new RowDefinition();
//set binding on HeightProperty
definition.SetBinding(RowDefinition.HeightProperty, binding);
//'myGrid' is the name of the grid instance
//add RowDefinition to grid
myGrid.RowDefinitions.Add(definition);
Чтобы иметь возможность обрабатывать сетку в коде позади, вы добавляете имя в сетку:
<Grid Name="myGrid">
...
</Grid>