如果在列表wpf mvvm中未找到保存的项目,请将组合框Text属性更改为“Not found

eit6fx6z  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(93)

我有一个C# wpf mvvm应用程序,一些数据来自db。我有一个组合框,我想要实现的是:当数据库中的数据不在组合框列表中时,在组合框中我想写:“找不到数据”。如果可能的话,我想从xaml中这样做。
我试过:

<Trigger Property="SelectedItem" Value="{x:Null}">
        <Setter Property="Text" Value="No Item Selected"/>
    </Trigger>

但它不起作用。

e4eetjau

e4eetjau1#

我能想到的最简单的方法是覆盖一个文本块

<Grid HorizontalAlignment="Center" VerticalAlignment="Center" MinWidth="100">
        <ComboBox x:Name="myComboBox" ItemsSource={Binding ...}"/>
        </ComboBox>
        <TextBlock Text="No data found" IsHitTestVisible="False" Margin="3">
            <TextBlock.Style>
                <Style TargetType="TextBlock">
                    <Setter Property="Visibility" Value="Collapsed"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding SelectedItem, ElementName=myComboBox}" Value="{x:Null}">
                            <Setter Property="Visibility" Value="Visible"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
        </TextBlock>
    </Grid>

telerik或devexpress等控件库通常包含具有此特性的控件。

相关问题