मेरे पास ऑब्जेक्ट्स की एक सरणी है जो मूल रूप से विभिन्न श्रेणियों के लिए आईडी/मानों का ग्रिड है। यदि मैं श्रेणी द्वारा आदेशित संग्रह को बांधता हूं तो क्या मैं सूची दृश्य में टेक्स्टबॉक्स के "ग्रिड" को बांध सकता हूं? आईडी मान ज्ञात होंगे। उदाहरण नीचे स्पष्ट करने के लिए। मैं यूआई को संभाल सकता हूं, लेकिन मैं यह नहीं समझ सकता कि आईडी द्वारा "स्थान" कैसे किया जाए, लेकिन जब तक मैं कोड-बैक में यूआई को पंट और बना नहीं देता, तब तक मूल्य दिखाएं/बाध्य करें।

public class MyItem {        
   string ID;
   string Value;
   string Category;
}

with values: 
  { id1,  value1a, catA}
  { id2, value1b, catA}
  { id1,  value2a, catB}
  { id2, value2a, catB}

वांछित यूआई बाध्यकारी (प्रत्येक श्रेणी के मूल्यों को दिखाने वाली प्रत्येक पंक्ति के साथ सूची दृश्य):

value1a       value1b
value2a       value2b
1
DeannaD 19 जून 2016, 16:25

2 जवाब

सबसे बढ़िया उत्तर

आपके मामले में मेरा सुझाव है कि आप ListView के बजाय GridView का उपयोग करें

<GridView x:Name="categoryGrid" SizeChanged="GridView_SizeChanged" >
    <GridView.ItemContainerStyle>
        <Style TargetType="GridViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        </Style>
    </GridView.ItemContainerStyle>
       <GridView.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding Value}"/>
                            </DataTemplate>
       </GridView.ItemTemplate>
</GridView>

GridViewItem की चौड़ाई सेट करने के लिए SizeChanged ईवेंट हैंडलर का उपयोग करें।

private async void GridView_SizeChanged(object sender, SizeChangedEventArgs e)
{
    try
    {
        ItemsWrapGrid itemsWPGrid = (ItemsWrapGrid)((GridView)sender).ItemsPanelRoot;
        double viewWidth = ApplicationView.GetForCurrentView().VisibleBounds.Width;
        itemsWPGrid.ItemWidth = (viewWidth) / 2;
    }
    catch
    {

    }
}

और categoryGrid.ItemsSource = yourCustomList; सेट करना न भूलें

0
AbsoluteSith 20 जून 2016, 11:43

आप एक ListView बना सकते हैं और कुछ गुणों को अपने मॉडल से बाँध सकते हैं। उदाहरण के लिए

   <ListView>
        <ListView.ItemTemplate>
            <DataTemplate>

                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>

                <TextBlock  Grid.Column="0"  Text="{Binding ID}" />
                <TextBlock  Grid.Column="1"  Text="{Binding Value}" />
                <TextBlock Text="{Binding Category}" />
                <Etc />

                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
1
GeralexGR 20 जून 2016, 10:08