2011-07-21 14 views
5

नीचे एक्सएएमएल है। ऑब्जेक्ट का डेटा सूचीदृश्य को पॉप्युलेट कर रहा है। मैं समूहों को प्रदर्शित करने के लिए नहीं मिल सकता है। मैं वर्कसेन्टर नामक एक संपत्ति पर समूह बनाना चाहता हूं, जो सूचीदृश्य में प्रदर्शित नहीं होता है, लेकिन यह अभी भी इसके लिए बाध्य वर्ग का हिस्सा है।डब्ल्यूपीएफ सूचीदृश्य समूह शीर्षलेख प्रदर्शित नहीं: कोई विचार?

मैं एक डब्ल्यूपीएफ नोब हूं, इसलिए अगर मुझे जवाब मेरे सामने सही है तो मुझे माफ़ कर दो और मुझे याद आ रही है। मैं इसे काम करने के लिए वेब से उदाहरणों का उपयोग कर रहा हूं लेकिन यह इस बिंदु पर नहीं है।

यह एक परियोजना के लिए एक नकली है जो मुझे करना है, इसलिए बेवकूफ फॉर्म टेक्स्ट और नेमस्पेस को अनदेखा करें। =)

<Window x:Class="Son_of_a_Batching_WPF_Mock_up.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    DataContext="{Binding RelativeSource={RelativeSource Self}}" 
    Title="You Son of a Batch. I'm Detective John Kimble! I'm A Cop You Idiot!" Height="600" Width="800"> 
    <Window.Resources> 
     <CollectionViewSource Source="{Binding testDataCollection}" 
           x:Key="src"> 
      <CollectionViewSource.GroupDescriptions> 
       <PropertyGroupDescription PropertyName="workcenter" /> 
      </CollectionViewSource.GroupDescriptions> 
     </CollectionViewSource> 
    </Window.Resources> 
    <Grid x:Name="mainGrid" Background="White"> 
     <ComboBox x:Name="cboWorkCenters" HorizontalAlignment="Left" VerticalAlignment="Top" Width="256" Background="{x:Null}" Margin="12,50,0,0" SelectedIndex="0" FontSize="12pt" Height="27.28"> 
      <ComboBoxItem Content="Group by work center" FontSize="12pt"/> 
      <ComboBoxItem Content="Group by batch type" FontSize="12pt"/> 
     </ComboBox> 
     <Label x:Name="lblFilter" FontSize ="12pt" HorizontalAlignment="Left" Margin="11.473,13.043,0,0" VerticalAlignment="Top" Content="Filter by work center:" Width="252.527" FontWeight="Bold"/> 
     <ListView x:Name="lvBatches" Margin="12,83,12,12" ItemsSource="{Binding Source = {StaticResource src}}"><!--ItemsSource="{Binding testDataCollection}">--> 

      <ListView.GroupStyle> 
       <GroupStyle> 
        <GroupStyle.ContainerStyle> 
         <Style TargetType="{x:Type GroupItem}"> 
          <Setter Property="Margin" Value="0,0,0,5"/> 
          <Setter Property="Template"> 
           <Setter.Value> 
            <ControlTemplate TargetType="{x:Type GroupItem}"> 
             <Expander IsExpanded="True" BorderBrush="#FFA4B97F" BorderThickness="0,0,0,1"> 
              <Expander.Header> 
               <DockPanel> 
                <TextBlock FontWeight="Bold" Text=" {Binding Path=name}" Margin="5,0,0,0" Width="100"/> 
                <TextBlock FontWeight="Bold" Text=" {Binding Path=itemcount}"/> 
               </DockPanel> 
              </Expander.Header> 
              <Expander.Content> 
               <ItemsPresenter /> 
              </Expander.Content> 
             </Expander> 
            </ControlTemplate> 
           </Setter.Value> 
          </Setter> 
         </Style> 
        </GroupStyle.ContainerStyle> 
       </GroupStyle> 
      </ListView.GroupStyle> 

      <ListView.View> 
       <GridView> 
        <GridViewColumn x:Name="colID" Header="Batch ID" Width="200" DisplayMemberBinding="{Binding id}"/> 
        <!--<GridViewColumn x:Name="colWC" Header="Work Center" Width="100" DisplayMemberBinding="{Binding workcenter}"/>--> 
        <GridViewColumn x:Name="colStart" Header="Start Time" Width="150" DisplayMemberBinding="{Binding start}"/> 
        <GridViewColumn x:Name="colEnd" Header="End Time" Width="150" DisplayMemberBinding="{Binding end}"/> 
        <GridViewColumn x:Name="colDur" Header="Duration" Width="100" DisplayMemberBinding="{Binding duration}"/> 
        <GridViewColumn x:Name="colBatchType" Header="Batch Type" Width="100" DisplayMemberBinding="{Binding batchtype}"/> 
       </GridView> 
      </ListView.View> 
     </ListView> 
    </Grid> 
</Window> 

चूंकि मैं छवियां पोस्ट नहीं कर सकता, इसलिए मैं यह पता लगाने की कोशिश करूंगा कि टेक्स्ट कौशल का उपयोग करके यह कैसा दिखता है। मुझे यह मिलता है:

**Batch ID Start Time End Time Duration Batch Type** 
-------- ---------- -------- -------- ---------- 
12344555 7/21/11  7/22/11  100  Loaded 
54564564 7/21/11  7/23/11  50  Sequential 
12433555 7/21/11  7/22/11  100  Loaded 
54564564 7/21/11  7/23/11  50  Sequential 
12311555 7/21/11  7/22/11  100  Loaded 
54456564 7/21/11  7/23/11  50  Sequential 
12344555 7/21/11  7/22/11  100  Loaded 
57744564 7/21/11  7/23/11  50  Sequential 
12994555 7/21/11  7/22/11  100  Loaded 
54500564 7/21/11  7/23/11  50  Sequential 

मुझे यह चाहिए कि 332, 404 समूह होने के साथ।

**Batch ID Start Time End Time Duration Batch Type** 
-------- ---------- -------- -------- ---------- 
**332** 
12344555 7/21/11  7/22/11  100  Loaded 
12433555 7/21/11  7/22/11  100  Loaded 
12311555 7/21/11  7/22/11  100  Loaded 

**404** 
54564564 7/21/11  7/23/11  50  Sequential 
54564564 7/21/11  7/23/11  50  Sequential 
54500564 7/21/11  7/23/11  50  Sequential 

यहां कोड है। मुझे नहीं लगता कि इससे मदद मिलेगी। इसमें से अधिकांश नकली-अप में प्रदर्शित करने के लिए सिर्फ टेस्ट डेटा है।

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 
using System.Collections.ObjectModel; 

namespace Son_of_a_Batching_WPF_Mock_up 
{ 
    /// <summary> 
    /// Interaction logic for Window1.xaml 
    /// </summary> 
    public partial class Window1 : Window 
    { 
     private ObservableCollection<TestData> _testDataCollection = new ObservableCollection<TestData>(); 
     public ObservableCollection<TestData> testDataCollection { get { return _testDataCollection; } } 
     //public System.ComponentModel.ICollectionView source { get; set; } 

     public Window1() 
     { 
      InitializeComponent(); 
      //this.source.GroupDescriptions.Add(new PropertyGroupDescription("workcenter")); 

      LoadTestData(); 

     } 

     private void LoadTestData() 
     { 
      //int[] icnt = new int[529]; 
      for (int i = 0; i <= 99; i++) 
      { 
       _testDataCollection.Add(new TestData()); 
      } 
      //for (int i = 0; i < _testDataCollection.Count; i++) 
      //{ 
      // icnt[int.Parse(_testDataCollection[i].workcenter)] ++; 
      //} 
      //this.label1.Content = "332:" + icnt[332].ToString() + "," + "402:" + icnt[402].ToString() + ","+ "404:" + icnt[404].ToString() + "," 
      //  + "522:" + icnt[522].ToString() + ","+ "523:" + icnt[523].ToString() + ","+ "524:" + icnt[524].ToString() + "," 
      //  + "527:" + icnt[527].ToString() + ","+ "528:" + icnt[528].ToString() + ","; 
     } 
    } 

    public class TestData 
    { 
     private string[] _WCs = new string[] { "404", "527", "523", "524", "332", "528", "522", "402" }; 
     private string[] _workcenters = new string[1000]; 
     private string _workcenter; 
     private double _duration = 0; 

     public string id 
     { 
      get { return Guid.NewGuid().ToString(); } 
     } 

     public string workcenter 
     { 
      get 
      { 
       return _workcenter; 
      } 
     } 

     public DateTime start 
     { 
      get { return DateTime.Now; } 
     } 

     public DateTime end 
     { 
      get { return DateTime.Now; } 
     } 

     public double duration 
     { 
      get 
      { 
       return _duration; 
      } 
     } 

     public string batchtype 
     { 
      get 
      { 
       switch (workcenter) 
       { 
        case "332": 
        case "402": 
        case "527": 
         return "Loaded Batch"; 
        case "404": 
        case "524": 
         return "Sequential Batch"; 
        case "522": 
        case "528": 
        case "523": 
         return "Supervisor Batch"; 
        default: 
         return ""; 
       } 
      } 
     } 

     public TestData() 
     { 
      RandomizeWCs(); 
      Random rnd = new Random(); 
      _workcenter = _workcenters[rnd.Next(0, 999)]; 
      rnd = new Random(); 
      _duration = rnd.Next(10, 60); 
     } 

     private void RandomizeWCs() 
     { 
      Random rnd = new Random(); 
      int iIndex, i; 

      while (_workcenters.Contains(null)) 
      { 
       iIndex = rnd.Next(1000); 
       i = rnd.Next(8); 
       if (_workcenters[iIndex] == null) 
       { 
        _workcenters[iIndex] = _WCs[i]; 
       } 
      } 
     } 

    } 
} 
+0

प्रदर्शन क्या करता है, कुछ भी? – CodingGorilla

+0

मुझे सब कुछ ठीक से समूहबद्ध करने के लिए मिलता है, केवल समूह पाठ प्रदर्शित नहीं हो रहा है। तो, मूल रूप से नीचे दिया गया उदाहरण 'मैं जो चाहता हूं वह है, 332, 404 समूह हैं।' केवल ** 332 ** और ** 404 ** प्रदर्शित किए बिना। दुर्भाग्य से, मैं छवियों को अभी तक पोस्ट नहीं कर सकता। – Yatrix

+2

आपको "Son_of_a_Batching" नाम के लिए मेरा वोट मिलता है, आप स्नीकी बेस्टेज को फर्गिन करते हैं! (नोट: यह "जॉनी डेंजरसली" के लिए एक फिल्म संदर्भ है) http://www.imdb.com/title/tt0087507/quotes –

उत्तर

3

अवास्तविक: मैं घंटों के लिए दीवार के खिलाफ मेरे सिर पीटने किया गया है और मैं मैं अपने ही समस्या हल कहने के लिए शर्मिंदा हूं। समाधान?

<TextBlock FontWeight="Bold" Text=" {Binding Path=name}" Margin="5,0,0,0" Width="100"/> 
<TextBlock FontWeight="Bold" Text=" {Binding Path=itemcount}"/> 

फ़्रीकिंग नाम और आइटमकाउंट पूंजीकृत नहीं थे !!! मुझे चेहरे पर खुद को पंच करने के लिए एक सेकंड दें ... annnnnd ... मैं अभी वापस आ गया हूँ। उस कोड को कोड करने के लिए नाम और आइटमकाउंट सही तरीका है।

वैसे भी धन्यवाद जिन्होंने उत्तर दिया।

+2

वहां कई बार ... 1001+ चेहरे पर खुद को छिड़कने के लिए! – LucasS

संबंधित मुद्दे