C++ XAML 从组合框中选择的项目
C++ XAML Selected Item from ComboBox
我目前正在尝试为自己创建一个简单的 C++ Windows Phone 8.1 应用程序,但遇到了这个简单的问题。我找不到 C++ 的任何类似代码示例,仅适用于 C#。
我的代码基于一个简单的 "Hello world" 程序。在Mainpage.xaml里面我引入了下面的ComboBox
<ComboBox x:Name="AttackDice" HorizontalAlignment="Left" Height="70"
Margin="37,70,0,0" VerticalAlignment="Top"
Width="320">
<ComboBoxItem Content="One attack dice"/>
<ComboBoxItem Content="Two attack dice" IsSelected="True"/>
<ComboBoxItem Content="Three attack dice" />
<ComboBoxItem Content="Four attack dice"/>
<ComboBoxItem Content="Five attack dice"/>
<ComboBoxItem Content="Six attack dice"/>
</ComboBox>
我还有一个简单的按钮,它在我的 Mainpage.xaml.cpp
中触发了以下事件
void HelloWorld::MainPage::RollDice_Button_Click(Platform::Object^ sender,
Windows::UI::Xaml::RoutedEventArgs^ e)
{
AttackResultTextBlock->Text = "Number of dice rolled: "
+ AttackDice->SelectedItem->ToString();
}
代码应该检索选定的 ComboBoxItem,并输出选定的(攻击)骰子数。然而,输出是:
Windows.UI.Xaml.Controls.ComboBoxItem
在 C# 中,正确的做法是(根据我在网上找到的一些指南)
Text = ((ComboBoxItem)AttackDice.SelectedItem).Content.ToString();
但我不确定如何在 C++ 中执行此操作。
以下C#代码
Text = ((ComboBoxItem)AttackDice.SelectedItem).Content.ToString();
可以转换为 C++/CX。等效于 C# 中的强制转换(参见 C++/CX 中的 Casting and Type Conversions), which throws an InvalidCastException
on failure, is safe_cast:
Text = (safe_cast<ComboBoxItem^>(AttackDice->SelectedItem))->Content->ToString();
我目前正在尝试为自己创建一个简单的 C++ Windows Phone 8.1 应用程序,但遇到了这个简单的问题。我找不到 C++ 的任何类似代码示例,仅适用于 C#。
我的代码基于一个简单的 "Hello world" 程序。在Mainpage.xaml里面我引入了下面的ComboBox
<ComboBox x:Name="AttackDice" HorizontalAlignment="Left" Height="70"
Margin="37,70,0,0" VerticalAlignment="Top"
Width="320">
<ComboBoxItem Content="One attack dice"/>
<ComboBoxItem Content="Two attack dice" IsSelected="True"/>
<ComboBoxItem Content="Three attack dice" />
<ComboBoxItem Content="Four attack dice"/>
<ComboBoxItem Content="Five attack dice"/>
<ComboBoxItem Content="Six attack dice"/>
</ComboBox>
我还有一个简单的按钮,它在我的 Mainpage.xaml.cpp
中触发了以下事件void HelloWorld::MainPage::RollDice_Button_Click(Platform::Object^ sender,
Windows::UI::Xaml::RoutedEventArgs^ e)
{
AttackResultTextBlock->Text = "Number of dice rolled: "
+ AttackDice->SelectedItem->ToString();
}
代码应该检索选定的 ComboBoxItem,并输出选定的(攻击)骰子数。然而,输出是:
Windows.UI.Xaml.Controls.ComboBoxItem
在 C# 中,正确的做法是(根据我在网上找到的一些指南)
Text = ((ComboBoxItem)AttackDice.SelectedItem).Content.ToString();
但我不确定如何在 C++ 中执行此操作。
以下C#代码
Text = ((ComboBoxItem)AttackDice.SelectedItem).Content.ToString();
可以转换为 C++/CX。等效于 C# 中的强制转换(参见 C++/CX 中的 Casting and Type Conversions), which throws an InvalidCastException
on failure, is safe_cast:
Text = (safe_cast<ComboBoxItem^>(AttackDice->SelectedItem))->Content->ToString();