برنامج الأغذية العالمي: مشكلة مع القيم ملزم لتحرير وسرد داخل GridViewColumn

StackOverflow https://stackoverflow.com/questions/287372

سؤال

وآرائي dataContext يحدها إلى presentationModel مع اثنين من observableCollections الأعضاء. في عرض لدي واحدة listView الذي لا بد ItemSource لهو observableCollection أولا. في واحدة من العمود LilstViews أريد أن أقدم القيم من Colletion obeservable الثاني في بلدي presentationModel. أنا غير قادر على معرفة كيفية الحصول على القيم من observableCollection في بلدي منسدل. هل لديها فكرة عن كيفية حل هذه المشكلة؟

هل كانت مفيدة؟

المحلول

وأول شيء عليك القيام به هو إنشاء قالب بيانات يحتوي على تحرير وسرد الخاص بك، في هذه الحالة لقد بد من ItemsSource إلى DependencyProperty على نافذة المضيف. هذا يحتوي على نموذج العرض، والتي لديها خاصية تسمى ComboSource. لقد ارتبطت SelectedValue، عبر DataContext في ListViewItem، وإلى خاصية الذي يحمل القيمة المحددة.

<ListView.Resources>
    <DataTemplate x:Key="comboBoxTemplate">
        <ComboBox
            ItemsSource="{Binding 
                            Path=ModelData.ComboSource, 
                            RelativeSource={RelativeSource AncestorType=Window}}"
            SelectedValue="{Binding 
                            Path=DataContext.Selection, 
                            RelativeSource={RelativeSource AncestorType=ListViewItem}}"
            DisplayMemberPath="Item"
            SelectedValuePath="Id"
            />
    </DataTemplate>
</ListView.Resources>

وبعد ذلك سوف تحتاج إلى مرجع هذا من CellTemplate على GridViewColumn

<GridViewColumn
    Header="Selection"
    Width="160"
    CellTemplate="{StaticResource comboBoxTemplate}"
    />
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top