-
Notifications
You must be signed in to change notification settings - Fork 803
Open
Labels
bugSomething isn't workingSomething isn't workingneeds-triageIssue needs to be triaged by the area ownersIssue needs to be triaged by the area owners
Description
Describe the bug
The exact code works in C#.
Obviously in C++, it generates the wrong code. For example, if I have <TextBlock Text="{x:Bind local:MyPage.ElementThemeToString(MyButton.ActualTheme), Mode=OneWay}" />, it generates
void DependencyPropertyChanged(DependencyObject const& sender, DependencyProperty const& prop) override
{
if (sender)
{
if (sender == cacheDPC_MyButton_ActualTheme && ::winrt::Microsoft::UI::Xaml::Controls::Button::ActualThemeProperty() == prop)The ActualThemeProperty() is in FrameworkElement not in Button, so it fails.
Curiously, {x:Bind} to my custom UserControl compiles fine, generates the correct code.
Steps to reproduce the bug
- Create a C++ packaged project
- Create a new Page (in case you say it's because of Window), Use this xaml
<StackPanel>
<Button x:Name="MyButton" />
<TextBlock Text="{x:Bind local:MyPage.ElementThemeToString(MyButton.ActualTheme), Mode=OneWay}" />
</StackPanel>in code behind, simply return a string
static winrt::hstring ElementThemeToString(winrt::Microsoft::UI::Xaml::ElementTheme theme)
{
switch (theme)
{
case winrt::Microsoft::UI::Xaml::ElementTheme::Dark: return L"Dark";
case winrt::Microsoft::UI::Xaml::ElementTheme::Light: return L"Light";
default: return L"Default";
}
}- Build the project
Expected behavior
No response
Screenshots
No response
NuGet package version
WinUI 3 - Windows App SDK 1.6.5: 1.6.250205002
Windows version
Windows 11 (24H2): Build 26100
Additional context
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingneeds-triageIssue needs to be triaged by the area ownersIssue needs to be triaged by the area owners