我在這裏有兩個問題。我有一個DataGrid填充了一些項目。我想要發生的是在DataGrid選定行下顯示一個Popup控件。下面是我有:Datagrid彈出控件
<Grid>
<DataGrid CanUserReorderColumns="False"
CanUserSortColumns="False"
HeadersVisibility="None"
AutoGenerateColumns="False"
VerticalAlignment="Stretch"
ItemsSource="{Binding ItemCollection}"
SelectedItem="{Binding SelectedItem}">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Binding="{Binding Path=Key}" />
<DataGridTextColumn Width="*" Binding="{Binding Path=Value}" />
</DataGrid.Columns>
</DataGrid>
<Popup PopupAnimation="Scroll" Placement="Bottom" AllowsTransparency="True" IsOpen="{Binding PopupVisible}" Margin="0" StaysOpen="True" >
<local:PopupControl />
</Popup>
</Grid>
我設置IsOpen屬性在我的視圖模型時的SelectedItem改變,像這樣:
PopupVisible = true;
有了這個代碼,我能夠展現酥料餅。
第一期: With StaysOpen =「True」當窗口移動時,彈出窗口不會移動。我使用Button控件處理這個問題的方式是將StaysOpen更改爲「False」,以便在單擊窗口中的其他位置時彈出窗口被解除。當我使用DataGrid控件執行此操作時,SelectedItem更改時彈出窗口根本不顯示。爲什麼是這樣?
第二期:如何讓彈出窗口顯示在選定的行下?
在彈出的xaml塊中,更改Placement =「MousePoint」,然後在DataGrid的單元格單擊事件中更改IsOpen =「True」。 – KbManu 2013-05-09 01:03:00