2012-09-12 34 views
0

我在網格中有兩個ListBox。 ListBox ItemsPanelTemplate設置爲「WrapPanel」。我期待看到兩個單獨的行,但只看到1.我對xaml非常陌生。您的幫助將不勝感激。謝謝。我沒有看到我的一個網格行....(兩個WrapPanel列表框在XAML網格中)

<navigation:Page 
x:Class="BusMasterControl.Home" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" 
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" 
xmlns:riaControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.DomainServices" 
xmlns:ds="clr-namespace:BusMasterControl.Web" 
xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" 
xmlns:Controls="clr-namespace:BusMasterControl.Controls" 
xmlns:converters="clr-namespace:BusMasterControl.Controls.Converters" 
mc:Ignorable="d" 
d:DesignWidth="640" 
d:DesignHeight="480" 
Style="{StaticResource PageStyle}"> 

<UserControl.Resources> 
    <converters:UriToMachineNameConverter x:Key="uriToMachineNameConverter" /> 
</UserControl.Resources> 
<Grid x:Name="LayoutRoot" VerticalAlignment="Top" HorizontalAlignment="Left" ShowGridLines="True"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 

    <riaControls:DomainDataSource Name="busMasterControlDomainDataSource2" LoadSize="500" QueryName="GetResourceByDomainAndUriFilter" AutoLoad="True"> 
     <riaControls:DomainDataSource.DomainContext> 
      <ds:BusMasterControlDomainContext /> 
     </riaControls:DomainDataSource.DomainContext> 
     <riaControls:DomainDataSource.QueryParameters> 
      <riaControls:Parameter ParameterName="domain" Value="//bus.mydomain.com" /> 
      <riaControls:Parameter ParameterName="uriFilter" Value="red" /> 
     </riaControls:DomainDataSource.QueryParameters> 

     <riaControls:DomainDataSource.SortDescriptors> 
      <riaControls:SortDescriptor PropertyPath="resourceId" Direction="Ascending" /> 
     </riaControls:DomainDataSource.SortDescriptors> 
    </riaControls:DomainDataSource> 

    <riaControls:DomainDataSource Name="busMasterControlDomainDataSource" LoadSize="500" QueryName="GetResourceByDomainAndUriFilter" AutoLoad="True"> 
     <riaControls:DomainDataSource.DomainContext> 
      <ds:BusMasterControlDomainContext /> 
     </riaControls:DomainDataSource.DomainContext> 
     <riaControls:DomainDataSource.QueryParameters> 
      <riaControls:Parameter ParameterName="domain" Value="//bus.test.mydomain.com" /> 
      <riaControls:Parameter ParameterName="uriFilter" Value="red" /> 
     </riaControls:DomainDataSource.QueryParameters> 
     <riaControls:DomainDataSource.SortDescriptors> 
      <riaControls:SortDescriptor PropertyPath="resourceId" Direction="Ascending" /> 
     </riaControls:DomainDataSource.SortDescriptors> 
    </riaControls:DomainDataSource> 

    <ListBox Name="machines2" BorderThickness="0" ItemsSource="{Binding Data, ElementName=busMasterControlDomainDataSource2}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Grid.RowSpan="1"> 
     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <toolkit:WrapPanel /> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Controls:BusBench 
        Background="Gray" 
        BorderBrush="Black" 
        BorderThickness="1" 
        Caption="{Binding Path=uri, Converter={StaticResource uriToMachineNameConverter},FallbackValue=Collapsed}"/> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
    <ListBox Name="machines" BorderThickness="0" ItemsSource="{Binding Data, ElementName=busMasterControlDomainDataSource}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" Grid.RowSpan="1"> 
     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <toolkit:WrapPanel /> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Controls:BusBench 
       Background="Gray" 
       BorderBrush="Black" 
       BorderThickness="1" 
       Caption="{Binding Path=uri, Converter={StaticResource uriToMachineNameConverter},FallbackValue=Collapsed}"/> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 

+0

此外,我必須在數據源做錯了什麼。我無法想象你必須創建整個「riaControls:DomainDataSource」標籤才能執行具有不同參數的相同查詢方法。這兩個問題是相關的嗎? – smadirondack

+0

如果這是Silverlight,WPF,Windows 8或...,您應該添加到您的標記並刪除entity-framework標記。 – Slauma

回答

0

我認爲你沒有指定第一個列表框中屬於網格行0和第二個網格行10Grid.Row附加屬性的默認值,因此您無需爲第一個列表框指定它。但第二你需要明確地將其設置爲1

<ListBox Name="machines" Grid.Row="1" ... > 
    ... 
</ListBox> 
+0

謝謝Slauma!就是這樣。另外,我的問題的第二部分...我是否必須爲每個GetResourceByDomainAndUriFilter查詢使用不同的參數創建單獨的riaControls:DomainDataSource塊?還是有更緊湊的方式...就像在ItemSource綁定?語法是什麼? – smadirondack

+0

@smadirondack:我不知道。我建議你爲此打開一個單獨的新問題,因爲它與原始問題完全不同。 – Slauma

相關問題