WPF绑定到单个控件(不是列表)

时间:2012-07-05 13:56:08

标签: c# .net wpf data-binding datatemplate

简而言之,我正在尝试做的是创建一个DataTemplate来指示客户横幅的外观。

我的工作方式非常简单,但只使用了ListView控件,我将ItemsSource应用到包含一个条目的列表中。

我想要做的是将Customer对象直接应用于控件(不确定控件的类型),然后选择此类型的DataTemplate并布置数据。

我正在使用的xaml是......

<Window x:Class="WpfApplication5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication5"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <DataTemplate DataType="{x:Type local:Customer}" >
            <Border Background="Blue" >
                <TextBlock Text="{Binding CustomerName}"  />
            </Border>
        </DataTemplate>
    </Window.Resources>
    <ListView x:Name="mylist" />
</Window>

使用以下代码隐藏。

namespace WpfApplication5
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Customer mp=new Customer();
            mp.CustomerName="Mr. Banana";
            List<Customer> temp = new List<Customer>();
            temp.Add(mp);
            mylist.ItemsSource = temp;
        }
    }
    public class Customer
    {
        public string CustomerName { get; set; }
    }
}

2 个答案:

答案 0 :(得分:1)

只需使用ContentControl

<ContentControl x:Name="banner" />

并在代码中:

banner.Content = mp;

答案 1 :(得分:0)

创建您自己的UserControl,其中包含可用于绑定的Customer属性。然后,您可以使用RelativeSource绑定绑定到该属性。