我在网格的一列中有一个组框和网格分离器控件。组框的水平对齐被设置为伸展,因此当我拖动分离器时它占据了所有空间。一切运作良好。水平拉伸元素的绑定宽度属性
现在我需要将组框的值存储在绑定对象的属性中,但只要绑定宽度属性,它就会被卡住,不再在拉伸分离器时拉伸它本身。
我知道原因,因为现在绑定的属性是它的宽度的责任,它没有得到改变。但不知道如何使它工作。这是我的XAML。
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid x:Name="InnerGrid" HorizontalAlignment="Stretch" Height="{Binding ElementName=Control1,Path=ActualHeight}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="200"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<GroupBox Header="{Binding TrackName}" VerticalAlignment="Stretch" Margin="3 0 3 0" HorizontalAlignment="Stretch" />
<GridSplitter Width="5" VerticalAlignment="Stretch" Focusable="False" Background="Gray"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
你需要以某种方式推动'GroupBox.ActualWidth'回到你的对象/视图模型。有人可能会认为'OneWayToSource'绑定可以完成这项工作,但遗憾的是,您不能在只读的DependencyProperty(ActualWidth)上设置任何绑定。请参阅这两个解决方法:http://stackoverflow.com/a/7227295/1869660 ..和http://stackoverflow.com/a/1083733/1869660 – Sphinxxx
您的问题是不够清楚..我看到在你的代码ItemsControl模板和DataTemplate ..我怀疑你是过分简化了你在问题中遇到的问题的解释。 –