WinUI3 ComboBox 不显示所选值

问题描述 投票:0回答:1
        <ComboBox Margin="10,10,0,0" x:Name="Combo1"   MinWidth="500" IsDropDownOpen="True" IsEditable="False" Header="ASIO Driver selection:"
                         ItemsSource="{x:Bind Drivers}"
         SelectedIndex="0" SelectionChanged="AsioSelChanged" >
            <ComboBox.ItemTemplate>
                <DataTemplate  x:DataType="local:AsioItem">
                    <TextBlock Text="{x:Bind Name1}"  />
                </DataTemplate>
            </ComboBox.ItemTemplate>
    </ComboBox>

上面的设置创建了一个组合框,但是这个组合框虽然它确实选择了项目,但它没有将文本设置为它所选择的项目。

winrt::Windows::Foundation::Collections::IObservableVector<winrt::tsed::AsioItem> Audio::Drivers()
{
    auto children = single_threaded_observable_vector<tsed::AsioItem>(); 
    // fill children
    ...
    ///
    auto topnv = Content().as<StackPanel>();
    auto cb = topnv.FindName(L"Combo1").as<ComboBox>();
    cb.Text(L"test"); // this doesn't work either
}

如何告诉 CombBox 执行显而易见的操作,即将组合框的选定文本设置为它的文本?

winapi winui-3
1个回答
0
投票

IsEditable
Text 时,
true
属性将处于活动状态。如果您想获取文本,在您的情况下
Name
,您可能需要使用
SelectedValuePath
SelectedValue
:

<ComboBox
    x:Name="Combo1"
    ItemsSource="{x:Bind Drivers}"
    SelectedIndex="0"
    SelectedValuePath="Name">
    <ComboBox.ItemTemplate>
        <DataTemplate x:DataType="local:AsioItem">
            <TextBlock Text="{x:Bind Name}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
<TextBlock Text="{x:Bind Combo1.SelectedValue, Mode=OneWay}" />
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.