2015-02-03 5 views
5

अपडेट नहीं कर रहा है इसलिए मैं यहां पूरी तरह उलझन में हूं।डेटाग्रिड चयनित इटैम

मैंने एक डाटाग्रिड बनाया, इसके आइटम्ससोर्स को दो तरह से बांध दिया और इसके चुने हुए आइटम को दो तरह से बांध दिया। चयनित आइटम गेटर को बुलाया जाता है लेकिन सेटटर कभी नहीं करता है। सभी टुकड़े यहाँ प्रतीत होते हैं। मैं क्या खो रहा हूँ?

<DataGrid ItemsSource="{Binding Properties ,Mode=TwoWay}" 
        SelectedItem="{Binding SelectedProperty ,Mode=TwoWay}" 
        CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False" Background="LightBlue"> 

    <DataGrid.Columns> 
     <DataGridTextColumn IsReadOnly="True" Header="Address" Binding="{Binding Address}"/> 
    </DataGrid.Columns> 
    <DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
     <DataGrid ItemsSource="{Binding Units ,Mode=TwoWay}" 
        SelectedItem="{Binding SelectedUnit, Mode=TwoWay}" 
        CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False"> 

मेरा पहला डाटाग्रिड चयनित आइटम सहित ठीक काम करता है।

दूसरे तीसरे और चौथे घोंसले वाले ग्रिड हालांकि चयनित आइटम से बंधे नहीं हैं। आइटम स्रोत काम करते हैं लेकिन यह

public class PropertyModel : ModelBase 
    { 
    private ObservableCollection<UnitModel> _Units; 

    public ObservableCollection<UnitModel> Units 
    { 
     get { return _Units; } 
     set { _Units = value; } 
    } 
    private UnitModel _SelectedUnit; 

    public UnitModel SelectedUnit 
    { 
     get { return _SelectedUnit; } 
     set { _SelectedUnit = value; OnPropertyChanged("SelectedUnit"); } 
    } 

कोई बाध्यकारी अभिव्यक्ति त्रुटियां या आउटपुट विंडो में प्रदर्शित कोई अन्य त्रुटियां नहीं हैं।

+1

मैं अपने ग्रिड और कुछ के लिए दो 'ItemsControl' उपयोग करने के साथ मेरी समस्या को नजरअंदाज कर की तरह दिखना चाहिए 'रोहेडर' और 'कॉलमहेडर' के लिए। अभी भी 'डेटाग्रिड' – MadddinTribleD

उत्तर

5

इसका उत्तर वास्तव में बहुत स्पष्ट है।

मैं लगाना भूल गए UpdateSourceTrigger = PropertyChanged

इसलिए यह इस

<DataGrid ItemsSource="{Binding Units ,Mode=TwoWay}" 
     SelectedItem="{Binding SelectedUnit,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 
     CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False"> 

यह समस्या हल हो

+1

धन्यवाद, मैं इस पर दो दिनों तक फंस गया था। – Guge

1

मैं दो महीने पहले के समान कुछ का सामना करना पड़ा, किसी कारण भीतरी DataGridItemSource सही तरीके से सेट नहीं किया गया था कि जिस तरह से प्रयोग करने के लिए, मैं ठीक करने में कामयाब रहे कि SelectedItem को RowDetail DataGridItemSource स्थापित करने के लिए ElementName का उपयोग कर जुड़ कर माता-पिता में:

<DataGrid x:Name="DataGrid" ItemsSource="{Binding Properties ,Mode=TwoWay}" 
        SelectedItem="{Binding SelectedProperty ,Mode=TwoWay}" 
        CanUserDeleteRows="False" CanUserAddRows="False" AutoGenerateColumns="False" Background="LightBlue"> 

    <DataGrid.Columns> 
     <DataGridTextColumn IsReadOnly="True" Header="Address" Binding="{Binding Address}"/> 
    </DataGrid.Columns> 
    <DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
     <DataGrid ItemsSource="{Binding SelectedItem.Units ,Mode=TwoWay,ElementName=DataGrid}" 
+1

के साथ ऐसा करने का कोई तरीका है, जो मैंने आपको http://stackoverflow.com/questions/27131113/rowdetailstemplate-itemsource-binded-to-an-ef-navigationproperty – Usama

+2

के बारे में बताया है, तो यह समाधान काम नहीं करेगा और यही कारण है कि। समस्या यह नहीं है कि आइटम्ससोर्स पॉपुलटिंग नहीं कर रहा है। यह ठीक काम करता है। समस्या यह है कि संपत्ति जो नेस्टेड ग्रिड के लिए चयनित आइटम को बाध्य करने के लिए बाध्य है, वह सेटिंग नहीं है। मैंने आपके समाधान का परीक्षण किया है, जिसमें चयनित Item = {बाध्यकारी ElementName = PropertiesGrid, पथ = चयनित इटैम, मोड = दोवे "} स्पष्ट रूप से अगर मैं ऐसा करता हूं तो यह सही चयनित आइटम सेट कर सकता है लेकिन यह बाध्यकारी करने के किसी भी प्रयास को नष्ट कर देता है। समस्या कहीं कहीं है अन्य –

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