【问题标题】:WPF Button Height same as ListItem heightWPF 按钮高度与 ListItem 高度相同
【发布时间】:2019-01-25 13:57:57
【问题描述】:
我有一个 ListBox,其中我为 ListBox.ItemTemplate 设置了一个自定义 DataTemplate,因此 ListBox 项是单选按钮,样式为圆形按钮。
有什么方法可以将视图上的另一个单独按钮绑定到 ListBox.ItemTemplate 的 RadioButton 的 ActualHeight 的高度,这样单独按钮的高度将始终与 ListBox 中的 Radiobuttons 的高度相同?
【问题讨论】:
标签:
wpf
xaml
mvvm
data-binding
【解决方案1】:
这是一个带有一些代码的解决方案。处理RadioButton 的SizeChanged 事件,并将给定高度分配给视图模型的Height 属性。将单独按钮的Height 属性绑定到视图模型中的Height 属性。这是 XAML:
<ListBox ItemsSource="{Binding Items}">
<ListBox.ItemTemplate>
<DataTemplate>
<RadioButton
Content="{Binding Name}"
SizeChanged="OnRadioButtonSizeChanged" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button
Content="Button"
Height="{Binding Height}"
/>
下面是代码:
private void OnRadioButtonSizeChanged(object sender, SizeChangedEventArgs e)
{
ViewModel.Height = e.NewSize.Height;
}
当然,视图模型的Height 属性应该引发PropertyChanged 事件。