绑定到在XAML NOT CodeBehind中声明的新IENumerable

时间:2015-03-01 12:07:08

标签: wpf xaml itemssource

下面的XAML不正确,但它代表了我尝试做的事情。我对WPF很新,但我想知道这样的事情是否可行,而不是在代码中声明实例?

<ListBox Name="lbInstalledFonts" VerticalContentAlignment="Center" DisplayMemberPath="Name" ItemsSource="{Binding Source={new System.Drawing.Text.InstalledFontCollection().Familes}}" />

详细说明,我只需要这个ListBox的System.Drawing.Text.InstalledFontCollection().Familes列表。就是这样。所以我认为我可以完全通过XAML以类似于如何绑定到ASP.NET中的DataSource(通过在aspx / ascx文件中使用&lt;%和%&gt;)的方式完成它?这是可能吗?我做了一些搜索,但没有多少运气。

1 个答案:

答案 0 :(得分:0)

是的,有可能:

<Window x:Class="HelpStackOverflow.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:drawing="clr-namespace:System.Drawing.Text;assembly=System.Drawing"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <drawing:InstalledFontCollection x:Key="InstalledFontCollection" />
    </Window.Resources>
    <Grid>
        <ListBox Name="lbInstalledFonts" 
                 VerticalContentAlignment="Center" 
                 DisplayMemberPath="Name" 
                 ItemsSource="{Binding Source={StaticResource InstalledFontCollection}, Path=Families}" />
    </Grid>
</Window>