如何在xaml和.cs文件中的TabControl中绑定ListView

时间:2017-03-24 07:19:28

标签: wpf xaml

我创建了一个TabControl并且有一个ListView。我试图将.cs文件中创建的列表绑定到同一窗口,但是绑定时列表没有反映到xaml文件中。

我尝试创建一个名为“列表视图”的选项卡,并绑定在.cs文件中创建的ListViewItems。

我还试图绑定文本块中的文本,但它没有反映出来。

代码隐藏

namespace Shweta
{
    /// <summary>
    /// Interaction logic for Window5.xaml
    ///// </summary>
    public partial class Window5 : Window
    {
        public Window5()
        {            
             InitializeComponent();
        }
    }

    public class CollectionViewModel
    {
      public List<string> ListViewItems
        {
            get
            {
                return new List<string>
                {
                    "First name",
                    "Second name",
                    "Third name"
                };
            }
        }
     }
}

Xaml标记

<Window x:Class="Shweta.Window5"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window5" Height="300" Width="300">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="40*" />
            <ColumnDefinition Width="238*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="47*" />
            <RowDefinition Height="214*" />
        </Grid.RowDefinitions>
        <Grid Grid.Column="1" Grid.Row="1">
            <TabControl>
                <TabItem Header="List View">
                    <ListView ItemsSource="{Binding ListViewItems}">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <StackPanel>
                                    <Border Background="LightBlue" Padding="3"/>
                                    <TextBlock Text="{Binding}"/>
                                </StackPanel>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </TabItem>
            </TabControl>
        </Grid>
    </Grid>
</Window>

1 个答案:

答案 0 :(得分:0)

如果使用视图模型对象设置DataContext,则视图模型的绑定将起作用:

public Window5()
{            
     InitializeComponent();
     this.DataContext = new CollectionViewModel();
}