سؤال

لدي كائنات أنا DataBinding إلى ListBox في WPF. إليك ما يجب أن تبدو النتيجة النهائية

------------------------------- | الاسم | OPT1 | Value1 | | | OPT2 | Value2 | | | OPT3 | Value3 | | | OPT4 | value4 | -------------------------------

أساسا لدي DataTemplate للمتغير الشامل، ثم التحرير والسرد Opt / Value لديه DataTemplate الخاص به. أحاول عرض قائمة القيم ببساطة قدر الإمكان.

<Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" />
<ListView Grid.Column="1" HorizontalAlignment="Stretch" 
          ItemsSource="{Binding Path=Values, Mode=OneWay}" />

الربط للقيم هو حاليا فقط <Grid> مع 2. <Label>يحتوي "S و ListView على الكثير من الميزات التي لا أشاهدها"، مثل التصميم والحوامل، ومثلها، عندما أكون كل ما أريده حقا هو أن أكون قادرا على بيانات التعطل باستخدام قائمة.

لقد حاولت تعديل العناصر إلى StackPanel ولكنها لم أستطع الحصول عليها للعمل في XAML. أفترض أن حل آخر هو أن أفعل ما أقوم به، وإعادة كتابة <Style> ل listview. أي اقتراحات حول الطريقة الصحيحة للقيام بذلك؟

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

المحلول

بالتأكيد يبدو وكأنه شيء يمكنك القيام به مع listBox., ، أو عناصر كونترول إذا كنت لا تريد منهم أن يكونوا للاختيار. يمكننا أيضا الاستفادة من issharedsizescope. ملكية المرفقة للحفاظ على أعمدةنا المنسقة وحتى. أيضا، نلقي نظرة على الولاية الميراث في أسفل رابط ListBox، يجب أن تساعدك في تحديد نوع القائمة التي تحتاجها لسيناريوهات مختلفة.

جرب شيئا مثل هذا:

<DockPanel>
  <Label Content="{Binding Path=Identifier.Name, Mode=OneWay}" />
  <ListBox ItemsSource="{Binding Path=Values, Mode=OneWay}"
           Grid.IsSharedSizeScope="True">
    <ListBox.ItemTemplate>
      <DataTemplate>
        <Grid>
          <Grid.ColumnDefinitions>
            <ColumnDefinition SharedSizeGroup="OptionColumn" />
            <ColumnDefinition SharedSizeGroup="ValueColumn" />
          </Grid.ColumnDefinitions>
          <TextBlock Grid.Column="0" Text="{Binding Option}" />
          <TextBlock Grid.Column="1" Text="{Binding Value}" />
        </Grid>
      </DataTemplate>
    </ListBox.ItemTemplate>
  </ListBox>
</DockPanel>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top