2014-11-03 72 views

回答

1

您可能需要自己构建控件。您可以制作由<Button><ListBox>组成的复合控件来模拟您正在尝试执行的操作。这其实很简单。

例如:

<Button Content="{Binding SelectedItem.Song, FallbackValue=Show List, ElementName=myListBox}" Height="100" Click="Button_Click"></Button> 
<ListBox x:Name="myListBox" Height="60" Visibility="Collapsed"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Border BorderBrush="Red" BorderThickness="1" Height="50" Padding="15,0"> 
       <TextBlock VerticalAlignment="Center"> 
        <Run Text="{Binding Song}"></Run> 
       </TextBlock> 
      </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate>     
</ListBox> 

我在这里所做的编程绑定到ListBox的的SelectedItem拥有。宋物业公司Content一个按钮,如果选择没有它退到“显示列表“

当用户点击按钮时,它应该根据当前的可见性来隐藏/显示列表框。

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    if (this.myListBox.Visibility == System.Windows.Visibility.Collapsed) 
    { 
     this.myListBox.Visibility = System.Windows.Visibility.Visible; 
    } 
    else 
     this.myListBox.Visibility = System.Windows.Visibility.Collapsed; 
} 

你的工作是包装这一切都取决于一个很好的用户控件内部或者你可以把它当作是。

下面是它的一些截图在行动:

enter image description here