2013-12-17 11 views
7

शैली के लिए है मैं के रूप मेंवहाँ एक रास्ता एक WPF डेटा ग्रिड NewItem प्लेसहोल्डर

<DataGrid x:Name="ScheduleDataGrid" AutoGenerateColumns="False" CanUserAddRows="True" CanUserDeleteRows="True" Margin="5" ItemsSource="{Binding ScheduleItems}"> 
    <DataGrid.Columns> 

     <DataGridTextColumn...></DataGridTextColumn> 
     .... 
     <DataGridTextColumn...></DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid> 

मैं CanUserAddRows = "सही" निर्दिष्ट किया है इस प्रकार परिभाषित किया गया एक सरल डेटा नियंत्रण है। विज्ञापित के रूप में, यह उपयोगकर्ता के लिए एक नई पंक्ति जोड़ने के लिए ग्रिड के नीचे एक खाली पंक्ति डालता है।

क्या नया आइटम प्लेसहोल्डर स्वतंत्र रूप से ग्रिड के बाकी हिस्सों को स्टाइल करने का कोई तरीका है?

उत्तर

8

हाँ प्लेसहोल्डर पंक्ति को बदलना संभव है।

इस उदाहरण को मैंने अभी देखा है।

<Window.Resources> 
    <Style TargetType="{x:Type DataGridRow}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding}" Value="{x:Static CollectionView.NewItemPlaceholder}"> 
       <Setter Property="Background" Value="Yellow"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 
<Grid> 
    <DataGrid AutoGenerateColumns="False" CanUserAddRows="True" ItemsSource="{Binding List}"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Test" Binding="{Binding Path=Name, Mode=TwoWay}"/> 
     </DataGrid.Columns> 
    </DataGrid> 
</Grid> 

वह प्लेसहोल्डर पंक्ति पीले रंग की पृष्ठभूमि के साथ दिखाई देगी।

+0

क्या कोई तरीका है कि हम 'न्यूइटमप्लेसहोल्डर' को ग्रिड की शीर्ष पंक्ति में रख सकते हैं? –

+1

@AbinMathew, हां शेड्यूलइटम। न्यूइटेमप्लेस होल्डरपॉजिशन = सिस्टम। कॉम्पोनेंट मॉडेल। न्यूइटेम प्लेसहोल्डर पोशन.एटबेजिंग; –

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