Привязка к выбору ViewModel - PullRequest
       0

Привязка к выбору ViewModel

0 голосов
/ 06 апреля 2011

Я пытаюсь привязать свой ListBox к выбору моей ViewModel, потому что у меня есть несколько ListBoxes в Pivot, и я не хочу печатать всю страницу для каждого свойства. Чтобы проиллюстрировать мою проблему, вот небольшой пример:

XAML:

    <DataTemplate x:Key="PropertyTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Label}" />
            <TextBlock Text="{Binding Value}" />
        </StackPanel>
    </DataTemplate>

    <controls:Pivot>
        <controls:PivotItem>
            <ListBox ItemsSource="{Binding PropertySelectionOne}" ItemTemplate="{StaticResource PropertyTemplate}" />
        </controls:PivotItem>

        <controls:PivotItem>
            <ListBox ItemsSource="{Binding PropertySelectionTwo}" ItemTemplate="{StaticResource PropertyTemplate}" />
        </controls:PivotItem>
    </controls:Pivot>

ViewModel:

public class SomeViewModel
{
    private Property _propOne;
    public Property PropOne
    {
        get { return _propOne; }
        set { _propOne = value; NotifyPropertyChanged("PropOne"); }
    }
    private Property _propTwo;
    public Property PropTwo
    {
        get { return _propTwo; }
        set { _propTwo = value; NotifyPropertyChanged("PropTwo"); }
    }
    private Property _propThree;
    public Property PropThree
    {
        get { return _propThree; }
        set { _propThree = value; NotifyPropertyChanged("PropThree"); }
    }
}

Таким образом, в основном я хочу привязать свои ListBox к PropertySelectionOne и PropertySelectionTwo, которые будут содержать ссылки на выбор свойств в моей ViewModel. Например, PropertySelectionOne может включать PropOne и PropTwo, а PropertySelectionTwo может включать PropTwo и PropThree.

Есть ли простой способ "сгруппировать" эти свойства в новое свойство, с которым нужно связать его, не изменяя архитектуру моего приложения?

Спасибо

1 Ответ

0 голосов
/ 06 апреля 2011

Если у вас есть разные свойства для отображения из одного и того же типа даты в разных списках, то, возможно, вам нужно разделить модель представления, но вы говорите, что не хотите менять архитектуру вашего приложения, чтоЭто ваш выбор.

Итак, вам нужно предоставить отдельный ItemTemplate для каждого ListBox, который определяет, какие свойства и как вы хотите отображать в каждом ListBox.Затем вы можете привязать ItemsSource для всех списков к одному и тому же источнику данных, но они будут представлять разные свойства в соответствии с ItemTemplate.

Не уверены, насколько вы знакомы с этими понятиями,но вы знаете, что ItemsSource должен быть набором ваших экземпляров данных (SomeViewModel?), верно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...