আমি কীভাবে একটি ডাব্লুপিএফ তালিকাভিউয়ের শিরোনামটি আড়াল করতে পারি?


86

আমি ডাব্লুপিএফ তালিকাভিউতে প্রতিটি গ্রিড কলামের শীর্ষে শিরোনামটি আড়াল করতে সক্ষম হতে চাই।

এটি আমার তালিকাভুক্তির জন্য এক্সএএমএল:

   <Window x:Class="ListViewTest.Test0.ListViewTest"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Title="Empty ListView Grid" Height="216" Width="435" FlowDirection="LeftToRight" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.IsSharedSizeScope="False">
    <Window.Resources>
        <XmlDataProvider x:Key="CustomersDS" Source="C:\data.xml"/>
    </Window.Resources>


    <ListView Margin="0,0,0,50" ItemTemplate="{DynamicResource CustomerTemplate}" ItemsSource="{Binding Source={StaticResource CustomersDS}, XPath=/Customers/Customer}">
        <ListView.View>
            <GridView>
                <GridViewColumn  DisplayMemberBinding="{Binding XPath=Code}"/>
                <GridViewColumn  DisplayMemberBinding="{Binding XPath=Name}"/>
                <GridViewColumn  DisplayMemberBinding="{Binding XPath=Country}"/>
            </GridView>
        </ListView.View>
    </ListView>


</Window>

আমি যে ডেটাটির সাথে এটি আবদ্ধ করছি তা হ'ল:

 <Customers>
  <Customer>
 <Code>1234</Code>
 <Name>EPI</Name>
 <Country>Sesame Street</Country>
  </Customer>
  <Customer>
 <Code>3234</Code>
 <Name>Paul</Name>
 <Country>United Kingdom</Country>
  </Customer>
 <Customer>
 <Code>3344</Code>
 <Name>Juan</Name>
 <Country>Spain</Country>
  </Customer>
 <Customer>
 <Code>4321</Code>
 <Name>Dodo</Name>
 <Country>Mars</Country>
  </Customer>
</Customers>

উত্তর:


140

যেমন একটি শৈলী সংজ্ঞায়িত করুন

<Window.Resources>
    ....
    <Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}">
        <Setter Property="Visibility" Value="Collapsed" />
    </Style>
</Window.Resources>

এটি যেমন প্রয়োগ করুন

<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">
    ....
</GridView>

4
এটি ফ্রেমওয়ার্কএলিমেন্ট হওয়া উচিত না V দৃশ্যমানতা, কমপক্ষে WPF 3.5 এ? (আমি জানি এটি একটি পুরানো বিষয়, তবে এটি গুগলে শীর্ষে রয়েছে, সুতরাং এটি অনেক লোকের জন্য দরকারী)
রায় টি।

4
এটি হওয়ার দরকার নেই। আপনি লক্ষ্য প্রকারটি নির্দিষ্ট করেছেন, সুতরাং সম্পত্তি কোথায় আছে তা নির্দিষ্ট করার দরকার নেই।
রায়

চমত্কার পোস্ট ... আমাকে অনেক সময় সাশ্রয় করেছে এবং একটি ট্রিট কাজ করেছে .. ধন্যবাদ
কেভ

যদি পুনঃব্যবহার কোনও কারণ না হয় তবে এটি গ্রিডভিউতেও ইনলাইন করা যায়:<GridView><GridView.ColumnHeaderContainerStyle><Style TargetType="{x:Type GridViewColumnHeader}"><Setter Property="Visibility" Value="Collapsed" /></Style></GridView.ColumnHeaderContainerStyle></GridView>
হটএন

55

এই সমাধানের জন্য ধন্যবাদ। আপনি এর Styleমতো ইনলাইনটিও রাখতে পারেন:

<ListView>
    <ListView.Resources>
        <Style TargetType="GridViewColumnHeader">
            <Setter Property="Visibility" Value="Collapsed" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <!-- ... -->
        </GridView>
    </ListView.View>
</ListView>

(এছাড়াও, আপনি যে {x:Type}স্বরলিপিটি ব্যবহার করেছেন তা মনে হচ্ছে না)


যদিও উভয় উত্তর সঠিক, এটি সবচেয়ে পছন্দসই। ধন্যবাদ.
নিউ মৌমাছি

20

আপনি রায়ের সমাধান প্রয়োগ করতে পারেন এর অন্য উপায়টি হ'ল:

<ListView>
    <ListView.View>
        <GridView>
            <GridView.ColumnHeaderContainerStyle>
                <Style TargetType="GridViewColumnHeader">
                    <Setter Property="Visibility" Value="Collapsed" />
                </Style>
            </GridView.ColumnHeaderContainerStyle>
        </GridView>
    </ListView.View>
</ListView>

সমাধানটি স্বয়ংক্রিয়ভাবে প্রয়োগ হওয়া কোনও সংস্থান তৈরির পরিবর্তে স্টাইলের সম্পত্তিটি সরাসরি সেট করে। বলছি না এটি আরও ভাল, অন্য একটি উপায় ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.