আমি কীভাবে একটি ডব্লিউপিএফ সরঞ্জামকিট ডেটাগ্রিডে ডেটাগ্রিডটেম্পলেট কলামটি বাছাই করতে পারি?


93

আমার কাছে একটি ডেটাগ্রিডটেমপ্লেট কলাম সহ ডাব্লুপিএফ টুলকিট ডেটাগ্রিড রয়েছে। আমি একটি গ্রিড বৈশিষ্ট্যে উল্লেখ করেছি যে আমি চাই সমস্ত কলামগুলি বাছাইযোগ্য হোক, তবে ডেটাগ্রিডটেম্পলেট কলাম এটির অনুমতি দেয় না। অন্যান্য সমস্ত কলামগুলি বাছাইয়ের অনুমতি দেয়। এমনকি আমি এই কলামটির জন্য স্পষ্টভাবে CanUserSort সেট করতে চেষ্টা করেছি, তবে ভাগ্য নেই luck টেমপ্লেট কলামটি বাছাই করা কি সম্ভব? আমি একটি কাস্টম সর্টর সরবরাহ করেছি যা সমস্ত কলামের জন্য কাজ করে, তবে শিরোনামটি বাছাই ক্লিক করতে দেয় না।

<Controls:DataGrid ItemsSource="{Binding Events}" AutoGenerateColumns="False" 
                               CanUserSortColumns="True" 
                               CanUserReorderColumns="False" 
                               Sorting="DataGrid_Sorting" 
                               x:Name="EventsGrid">
                <Controls:DataGrid.Columns>
                    <Controls:DataGridTemplateColumn Header="Type" Width="42" CanUserResize="False">
                        <Controls:DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Image Source="{Binding EventTypeImage, Mode=OneWay}" HorizontalAlignment="Center" Width="16"/>
                            </DataTemplate>
                        </Controls:DataGridTemplateColumn.CellTemplate>
                    </Controls:DataGridTemplateColumn>
                    <Controls:DataGridTextColumn Header="Source" 
                                           Binding="{Binding Source, Mode=OneWay}" />
                    <Controls:DataGridTextColumn Header="Details" MinWidth="175" 
                                           Binding="{Binding Details, Mode=OneWay}" />
                    <Controls:DataGridTextColumn Header="Timestamp" MinWidth="175"  
                                           Binding="{Binding Timestamp, Mode=OneWay}" 
                                           IsReadOnly="True"/>
                </Controls:DataGrid.Columns>
            </Controls:DataGrid>

উত্তর:


173

আপনি যে সিএলআর সম্পত্তিটি বাছাই করতে চান তার নামে আপনাকে SortMemberPathসম্পত্তিটি সেট করতে Controls:DataGridTemplateColumnহবে।


6
সতর্কতার এক শব্দ। আপনি অন্তর্নিহিত ডেটা পরিবর্তন করলে এটি স্বয়ংক্রিয়ভাবে পুনরায় বাছাই করবে না।
কেলি

4
অন্য দ্রষ্টব্য: এটি নির্লজ্জ শোনাতে পারে তবে আপনার কলামে শিরোনাম (শিরোনাম) না থাকলে এটিও কাজ করবে না - শিরোনামটি ক্লিক করলে বাছাই শুরু হয়। আমার একটি কলাম রয়েছে যার শিরোনামের প্রয়োজন নেই এবং আমি এটি শিরোনাম = ""
বোকোসকোকোস

প্রত্যাশিত হিসাবে কাজ করা
হার্মি

35

SortMemberPath="Name"ডেটাগ্রিডটেম্প্লেট কলামে যুক্ত হয়েছে। এটি বাছাই শুরু।

<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">

15
 <DataGridTemplateColumn SortMemberPath="DataDiNascita" Header="Data di nascita" IsReadOnly="True">
                <DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <DatePicker SelectedDate="{Binding Path=DataDiNascita}"></DatePicker>
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Path=DataDiNascita,StringFormat=\{0:dd/MM/yyyy\}}"></TextBlock>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.