Привязка ListView к свойству в том же классе - PullRequest
0 голосов
/ 04 ноября 2010

У меня есть ListView, и я хочу связать его со списком, объявленным в том же классе (codebehind)

public ObservableCollection<Slot> ListViewList { get; set; }

<ListView x:Name="ListViewSlots" Margin="0,230,0,0" ItemsPanel="{DynamicResource ItemsPanelTemplate1}" ItemsSource="{Binding Path=UserControl.ListViewList}" >

Но не работает, я попытался установить для datacontext из usercontrol значение self и desntработы.

Ответы [ 3 ]

3 голосов
/ 04 ноября 2010

Вы пытались установить DataContext UserControl на список , а затем установить ItemsSource ListView на это?

то есть.

<ListView ItemsSource="{Binding}" >
1 голос
/ 04 ноября 2010

Добавить в окно


<Window ...
   DataContext="{Binding RelativeSource={RelativeSource Self}}"
>

и тогда ваш ListView становится


<Listview ItemsSource="{Binding ListViewList}">...
0 голосов
/ 17 октября 2011

сначала вы должны представить свой список ресурсам класса:

public List<string> ListViewList
{
    get{ return (List<string> Resources["ListViewList"];}
    set{ Resources["ListViewList"] = value;}
}

или используйте ObservableCollection:

private ObservableCollection<string> _listViewList = new ObservableCollection<string>();
public ObservableCollection<string> ListViewList { get { return _listViewList; } }

тогда в XAML вы можете привязать что-то к нему:

<ListView>
    <ItemsPanel
        ItemsPanel="{DynamicResource ItemsPanelTemplate1}"
        ItemsSource="{Binding ListViewList}"
    />
</ListView>

и, как сказал Джоэл, вам нужно установить DataContext всего окна (или просто блок, с которым вы имеете дело) для себя:

<Window ...
   DataContext="{Binding RelativeSource={RelativeSource Self}}"
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...