为什么子菜单项不可见?
Why are submenu items not visible?
我已将菜单和子菜单绑定到用户定义的 class 类型的列表,其中包含字符串和列表作为其属性。
public class HouseInfo
{
public string House
{
get;
set;
}
public List<String> Details
{
get;
set;
}
}
public List<HouseInfo> HouseInfos { get; set; }
这是菜单的xaml:
<Menu x:Name="menu"
VerticalAlignment="Top"
Grid.Row="1"
Grid.Column="4"
Height="19">
<MenuItem ItemsSource="{Binding HouseInfos}"
Padding="0"
Background="#0068FF11"
VerticalAlignment="Top"
RenderTransformOrigin="0.5,0.5"
Height="19"
Width="105">
<MenuItem.RenderTransform>
<TransformGroup>
<ScaleTransform />
<SkewTransform />
<RotateTransform />
<TranslateTransform X="0.5" />
</TransformGroup>
</MenuItem.RenderTransform>
<MenuItem.Header>
<Label x:Name="headerYears"
Margin="0"
Padding="0"
Content="Houses"
Background="#00FF0000"
MaxHeight="18"
UseLayoutRounding="False"
RenderTransformOrigin="0,0"
HorizontalContentAlignment="Center" />
</MenuItem.Header>
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header"
Value="{Binding House}" />
<Setter Property="ItemsSource"
Value="{Binding InfoPoints}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
</Menu>
数据在子菜单和菜单中正确绑定,但由于某些未知原因,即使生成的子菜单项的数量等于视图模型中的列表计数,我也无法弄清楚子菜单文本不可见。
如何让它们可见?
我尝试设置填充、对齐方式、前景和我知道的每个 属性,但子菜单项文本仍然不可见。
Invisible Submenu items
我也无法显示子菜单项。花了一点时间,但我找到了一种让它们显示的方法。问题是子菜单项绑定到 Details
而不是 House
所以 Header
没有得到这个。所以我添加了另一个 ItemContainerStyle
这样的:
<MenuItem.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Path=House}" />
<Setter Property="ItemsSource" Value="{Binding Details}" />
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding}" />
</Style>
</Setter.Value>
</Setter>
</Style>
</MenuItem.ItemContainerStyle>
我已将菜单和子菜单绑定到用户定义的 class 类型的列表,其中包含字符串和列表作为其属性。
public class HouseInfo
{
public string House
{
get;
set;
}
public List<String> Details
{
get;
set;
}
}
public List<HouseInfo> HouseInfos { get; set; }
这是菜单的xaml:
<Menu x:Name="menu"
VerticalAlignment="Top"
Grid.Row="1"
Grid.Column="4"
Height="19">
<MenuItem ItemsSource="{Binding HouseInfos}"
Padding="0"
Background="#0068FF11"
VerticalAlignment="Top"
RenderTransformOrigin="0.5,0.5"
Height="19"
Width="105">
<MenuItem.RenderTransform>
<TransformGroup>
<ScaleTransform />
<SkewTransform />
<RotateTransform />
<TranslateTransform X="0.5" />
</TransformGroup>
</MenuItem.RenderTransform>
<MenuItem.Header>
<Label x:Name="headerYears"
Margin="0"
Padding="0"
Content="Houses"
Background="#00FF0000"
MaxHeight="18"
UseLayoutRounding="False"
RenderTransformOrigin="0,0"
HorizontalContentAlignment="Center" />
</MenuItem.Header>
<MenuItem.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header"
Value="{Binding House}" />
<Setter Property="ItemsSource"
Value="{Binding InfoPoints}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
</Menu>
数据在子菜单和菜单中正确绑定,但由于某些未知原因,即使生成的子菜单项的数量等于视图模型中的列表计数,我也无法弄清楚子菜单文本不可见。
如何让它们可见?
我尝试设置填充、对齐方式、前景和我知道的每个 属性,但子菜单项文本仍然不可见。
Invisible Submenu items
我也无法显示子菜单项。花了一点时间,但我找到了一种让它们显示的方法。问题是子菜单项绑定到 Details
而不是 House
所以 Header
没有得到这个。所以我添加了另一个 ItemContainerStyle
这样的:
<MenuItem.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Path=House}" />
<Setter Property="ItemsSource" Value="{Binding Details}" />
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding}" />
</Style>
</Setter.Value>
</Setter>
</Style>
</MenuItem.ItemContainerStyle>