簡體   English   中英

在WPF窗口中使用組合框隱藏/取消隱藏控件

[英]Hide/Unhide Controls using combobox in WPF windows

我想使用組合框隱藏和取消隱藏一些標簽和文本框。 使用數據源從數據庫填充文本框。 我已經嘗試了代碼,但是應用程序未給出任何響應。

碼:

private void _cmbRole_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (_cmbRole.SelectedValue == "3")
            {
                _txtPmdc.Visibility = Visibility.Visible;
                _lblAffiliation.Visibility = Visibility.Visible;
                _lblPmdb.Visibility = Visibility.Visible;
            }

            else
            {
                _txtPmdc.Visibility = Visibility.Hidden;
                _lblAffiliation.Visibility = Visibility.Hidden;
                _lblPmdb.Visibility = Visibility.Hidden;
            }
        }

XAML:

<ComboBox x:Name="_cmbRole" Grid.Column="2" DisplayMemberPath="type" ItemsSource="{Binding}" Margin="10,14,52,10" Grid.Row="1" SelectedValuePath="role_id" FontSize="14" SelectionChanged="_cmbRole_SelectionChanged">
                        <ComboBox.ItemsPanel>
                            <ItemsPanelTemplate>
                                <VirtualizingStackPanel/>
                            </ItemsPanelTemplate>
                        </ComboBox.ItemsPanel>
                    </ComboBox>

我認為SelectedValue不是字符串,所以比較總是false 請嘗試以下操作:

if (_cmbRole.SelectedValue.ToString() == "3")

更好的方法是將SelectedValue與正確類型的值進行比較。 例如,如果它是整數,則應將其與3進行比較。

但是您也可以比較SelectedIndexSelectedItem屬性。 可能是更好的選擇。

看起來您正在比較錯誤的數據類型。 您綁定到角色ID,角色ID最有可能是整數,並且在編寫== "3"時將其與字符串進行比較

如果是整數,則應該寫

if (_cmbRole.SelectedValue == 3)
{
    //true block here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM