इस समस्या को पुन: उत्पन्न करने के लिए, उपयोगकर्ता नियंत्रण जोड़ें, नीचे xaml में पेस्ट करें और फिर विंडो में एक उदाहरण जोड़ें। अंत में विंडो के डेटाकॉन्टेक्स्ट को ADummyDataContext (नीचे भी) के उदाहरण पर सेट करेंडब्लूपीएफ डाटाग्रिड मुद्दा
जब आप पहली बार एप्लिकेशन चलाते हैं, तो आपको एक बिल्ली युक्त प्रत्येक तीन श्रेणियों के साथ ग्रिड प्राप्त करना चाहिए। यदि आप नीचे की दो श्रेणियों में से किसी एक पर क्लिक करते हैं और बिल्ली के नाम पर क्लिक करते हैं, तो नीली पंक्ति केवल बिल्ली के नाम को दिखाएगी।
हालांकि, यदि आप पहली पंक्ति पर क्लिक करते हैं और बिल्ली की पंक्ति पर क्लिक करते हैं, तो नीली पंक्ति दिखाई नहीं देगी। नोट: यह केवल पहली बार होता है जब आप एप्लिकेशन चलाते हैं। जैसे ही आप किसी अन्य बिल्ली पर क्लिक करते हैं, पहली श्रेणी में बिल्ली अपेक्षित के रूप में काम करेगी।
<UserControl x:Class="WpfUserControls.SimpleGridControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Background="#FFE46400">
<Grid Margin="2,2,2,2">
<Grid.RowDefinitions>
<RowDefinition Height="26" MaxHeight="26" MinHeight="26" />
<RowDefinition />
<RowDefinition Height="26" MaxHeight="26" MinHeight="26" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<ToolBar Grid.Row="0">
<Button Content="Button" Name="button1" VerticalAlignment="Center" Width="75" />
<Button Content="Button" Name="button2" VerticalAlignment="Center" Width="75" />
</ToolBar>
<DataGrid CanUserAddRows="False" ItemsSource="{Binding Path=KittensView}" AutoGenerateColumns="True" Grid.Row="1" HorizontalAlignment="Stretch" Name="dataGrid1" VerticalAlignment="Stretch">
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Name}" />
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" Margin="0,0,5,0"/>
<TextBlock Text="{Binding Path=ItemCount}"/>
<TextBlock Text=" Items"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Background="LightBlue" Orientation="Horizontal" >
<!-- <Image Height="32" Width="32" Source="/WpfUserControls;component/cat.png"></Image> -->
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Height ="20" Text="{Binding Path=Name}"/>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
<StatusBar Grid.Row="2"></StatusBar>
</Grid>
</UserControl>
और यहां डेटा संदर्भ वर्ग और बिल्ली का बच्चा वर्ग है।
public class ADummyDataContext
{
public List<Kitten> Kittens { get; set; }
public ADummyDataContext()
{
Kittens = new List<Kitten>
{
new Kitten {Color = "Orange", Name = "Alfie", Weight=6, Sex="Male"},
new Kitten {Color = "Black and White", Name = "Smudge", Weight = 4, Sex="Female"},
new Kitten {Color = "Grey", Name = "Charlotte", Weight = 5, Sex="Female"}
};
KittensView = new ListCollectionView(Kittens);
KittensView.GroupDescriptions.Add(new PropertyGroupDescription("Weight"));
}
public ListCollectionView KittensView { get; set; }
}
public class Kitten
{
public string Name { get; set; }
public string Color { get; set; }
public int Weight { get; set; }
public string Sex { get; set; }
}
मुझे यह जानने में विशेष रूप से दिलचस्पी होगी कि समस्या यह है कि समस्या क्या है।
धन्यवाद
इस रूप में कई की अनुमति देते हैं शायद अभ्यस्त आपकी समस्या का समाधान लेकिन अतीत में मैं लिया है सूचियों का उपयोग करते समय परेशानी, शायद सूची को एक अवलोकन करने योग्य चयन में बदलने का प्रयास करें? – Purplegoldfish
भी एक बहुत अच्छा मुद्दा है। धन्यवाद :) – Ian