ContextMenu incorrect behavior
Posted: 07 Oct 2022, 21:50
When I try to implement my MenuItem I get behavior different from c#
First screenshot - c++
Second screenshot - c#
Code: Select all
class IContectMenuItem : public Noesis::NotifyPropertyChangedBase
{
public:
IContectMenuItem() {}
IContectMenuItem(const wchar_t* header, MenuItemState menuState)
{
IContectMenuItem(WCharToUtf8(header).c_str(), menuState);
}
IContectMenuItem(const char* header, MenuItemState menuState)
{
SetHeader(header);
if (bool(menuState & MenuItemState::Disabled)) {
SetEnabled(false);
}
if (bool(menuState & MenuItemState::Title)) {
SetEnabled(false);
}
}
~IContectMenuItem() {}
CreateStringGetSetProp(Header, 64);
CreateGetSetProp(bool, Enabled);
NS_IMPLEMENT_INTERFACE_FIXUP;
protected:
NS_IMPLEMENT_INLINE_REFLECTION(IContectMenuItem, Noesis::NotifyPropertyChangedBase, "IContectMenuItem")
{
RegGetSetProp(IContectMenuItem, Header);
RegGetSetProp(IContectMenuItem, Enabled);
}
};
Code: Select all
m_contextMenuItems->Clear();
m_contextMenuItems->Add
(
Noesis::MakePtr<IContectMenuItem>("Test 1", MenuItemState::None)
);
m_contextMenuItems->Add
(
Noesis::MakePtr<IContectMenuItem>("Test 1", MenuItemState::None)
);
m_contextMenuItems->Add
(
Noesis::MakePtr<IContectMenuItem>("Test 2", MenuItemState::None)
);
Code: Select all
<Grid.ContextMenu>
<ContextMenu ItemsSource="{Binding Path=ContextMenuItems}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header" Value="{Binding Path=Header}"/>
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</Grid.ContextMenu>
Second screenshot - c#