其他程序员,
我有一个组合框,在我的XAML中有一个框架。 但是,当组合框列表中的选定值与默认值不同时,我希望能够更改帧的来源。
CODE:
XAML
<DockPanel>
<Frame x:Name="comboFrame" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Width="Auto" Height="Auto" Source="pan.xaml"/>
</DockPanel>
<ComboBox x:Name="NumberBox" HorizontalAlignment="Left" Height="20" Margin="160,74,0,0" VerticalAlignment="Top" Width="40" SelectionChanged="ComboBox_SelectionChanged_1" ItemsSource="{Binding elements, BindsDirectlyToSource=True, StringFormat=\{0:X\}}" BorderThickness="0">
<ComboBoxItem Content="3"/>
<ComboBoxItem Content="4"/>
<ComboBoxItem Content="5"/>
<ComboBoxItem Content="6"/>
<ComboBoxItem Content="7"/>
<ComboBoxItem Content="8"/>
</ComboBox>
C#
private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
string stX = Convert.ToString(NumberBox.SelectedItem);
comboFrame.Navigate(new Uri("pan.xaml", UriKind.Relative));
if (stX == "3")
{
comboFrame.Navigate(new Uri("pan1.xaml", UriKind.Relative));
}
}
总之 - 我希望能够在组合框中更改选择框架的来源,不同于2。默认源是pan.xaml,它是选择2。 基本上取决于数量。面板都包含其他组合框。 面板包含2个CB(组合框),第1组包含3个CB等,直到面板6包含8个CB。
提前致谢。
答案 0 :(得分:0)
我设法解决了。
新代码:
XAML - 为内容添加名称;
<ComboBox x:Name="NumberBox" HorizontalAlignment="Left" Height="20" Margin="160,74,0,0" VerticalAlignment="Top" Width="40" SelectionChanged="ComboBox_SelectionChanged_1" ItemsSource="{Binding elements, BindsDirectlyToSource=True, StringFormat=\{0:X\}}" BorderThickness="0">
<ComboBoxItem Name="TwoBoxItem" Content="2"/>
<ComboBoxItem Name="ThreeBoxItem" Content="3"/>
<ComboBoxItem Name="FourBoxItem" Content="4"/>
<ComboBoxItem Name="FiveBoxItem" Content="5"/>
<ComboBoxItem Name="SixBoxItem" Content="6"/>
<ComboBoxItem Name="SevenBoxItem" Content="7"/>
<ComboBoxItem Name="EightBoxItem" Content="8"/>
</ComboBox>
C# - 使用XAML内容名称,检查选择是否等于它,然后使用dispatcher.invoke将帧重定向到具有相关组合框数的页面的URL。
private void ComboBox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
Uri oneX = new Uri("pan.xaml", UriKind.Relative);
if (NumberBox.SelectedItem == TwoBoxItem)
{
comboFrame.Dispatcher.Invoke(delegate
{
comboFrame.Source = oneX;
}
);
}
感谢所有人的回答,我希望这有助于某人。