小编Ron*_*ldA的帖子

UWP Combobox绑定到SelectedItem属性

我正在尝试使用组合框来处理绑定,以便最终可以将其用于某些设置.我可以从一个可观察的集合中获取要填充的项目,并将'SelectedItem'绑定到一个属性SelectedItem="{x:Bind SelectedComboBoxOption}"

但是当我更改选择时,这不会反映在也绑定到此属性的文本框中.在它背后的代码中,在启动时设置属性一次,但在更改组合框中的项时不设置.我必须遗漏一些东西,但我不清楚是什么.有任何想法吗?

这是XAML:

<Page
x:Class="ComboBoxTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ComboBoxTest"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel>
        <ComboBox 
            Name="ComboBox" 
            ItemsSource="{x:Bind ComboBoxOptions}" 
            SelectedItem="{x:Bind SelectedComboBoxOption, Mode=TwoWay}" 
            SelectedValuePath="ComboBoxOption" 
            DisplayMemberPath="ComboBoxHumanReadableOption"  
            Header="ComboBox" >
        </ComboBox>
        <TextBlock Name="BoundTextblock" Text="{x:Bind SelectedComboBoxOption}"/>
    </StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

这就是背后的代码:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;



namespace ComboBoxTest
{

 public sealed partial class MainPage : Page, INotifyPropertyChanged
 { …
Run Code Online (Sandbox Code Playgroud)

c# xaml binding combobox uwp

10
推荐指数
1
解决办法
2万
查看次数

UWP反映通过绑定从设置加载的CombBox选定项目

这是早期问题的延续.

对于某些应用程序设置,我想使用ComboBox来选择一个选项.我可以将所选选项保存到(漫游)设置并再次加载.加载的选项正确显示在TextBlock中,但ComboBox显示空白.如何在ComboBox中反映当前选中的已加载选项?

这是XAML:

<Page
x:Class="ComboBoxTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ComboBoxTest"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converter="using:ComboBoxTest.Converter"
mc:Ignorable="d">

<Page.Resources>
    <converter:ComboBoxItemConvert x:Key="ComboBoxItemConvert" />
</Page.Resources>


<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel>
        <ComboBox 
            Name="ComboBox" 
            ItemsSource="{x:Bind ComboBoxOptions}" 
            SelectedItem="{x:Bind SelectedComboBoxOption, Mode=TwoWay, Converter={StaticResource ComboBoxItemConvert}}" 
            SelectedValuePath="ComboBoxOption" 
            DisplayMemberPath="ComboBoxHumanReadableOption"  
            Header="ComboBox" >
        </ComboBox>
        <TextBlock Name="BoundTextblock" Text="{x:Bind SelectedComboBoxOption.ComboBoxOption, Mode=OneWay}"/>
    </StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

这就是背后的代码:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Xml.Serialization;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using …
Run Code Online (Sandbox Code Playgroud)

c# xaml binding combobox uwp

5
推荐指数
1
解决办法
2428
查看次数

标签 统计

binding ×2

c# ×2

combobox ×2

uwp ×2

xaml ×2