[英]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
進行比較。
但是您也可以比較SelectedIndex
和SelectedItem
屬性。 可能是更好的選擇。
看起來您正在比較錯誤的數據類型。 您綁定到角色ID,角色ID最有可能是整數,並且在編寫== "3"
時將其與字符串進行比較
如果是整數,則應該寫
if (_cmbRole.SelectedValue == 3)
{
//true block here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.