【发布时间】:2017-09-21 12:53:18
【问题描述】:
我正在尝试了解绑定和 XAML。我有一个非常简单的示例,我将字符串数组绑定到 XAML 中定义的组合框。我也想设置选中的索引。
我遇到了一个异常:
值不在预期范围内。
使用 SelectedIndex 属性。
这是我用于 UWP 应用程序的 XAML。
<StackPanel Background="{ThemeResource applicationPageBackgroundThemeBrush}">
<ComboBox Name="BrowserCombo" ItemsSource="{x:Bind ComboStrings}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
以及背后的代码
public sealed partial class MainPage : Page
{
private string[] comboStrings = { "One", "Two", "Three" };
public List<String> ComboStrings
{
get { return new List<string>(comboStrings); }
}
public MainPage()
{
this.InitializeComponent();
DataContext = this;
BrowserCombo.SelectedIndex = 1;
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
// BrowserCombo.SelectedIndex = 1;
}
}
我希望它非常简单,所以没有 MVVM - 我仍然需要学习这个概念。
备注:
- 我可以将 SelectedIndex 放在 XAML 文件中。同样的问题。
- 如果我将 SelectedIndex 放在 Page_Loaded 事件处理程序中,它可以正常工作。
- 在经典桌面 XAML(又名 WPF)中不会出现问题。
似乎 XAML-WinRt 和 XAML-WPF 之间的项目列表填充方式不同。访问 SelectedIndex 属性的最早点是什么?
【问题讨论】:
标签: xaml data-binding uwp winrt-xaml