小编Org*_*ey 的帖子

绑定到DataContext中的项目计数

我想绑定到我的DataContext中的Count /项目数量.

我有一个对象,让我说有List<address>一个属性的人.我想显示该人的地址数量,即:5或6或任何情况.

我已经尝试{Binding Path=address#.Count}过其他一些但是看起来似乎没有用.

任何帮助将不胜感激,谢谢.

wpf binding

24
推荐指数
2
解决办法
3万
查看次数

具有静态标头的ItemsControl

我认为我有一个非常简单的目标,但似乎无法实现.

我想要实现的是拥有一个带有标题的ItemsControl(因为我不希望列表的选择功能).优选地是静态头部.

目前我正在使用网格作为标题,然后将该网格复制到ItemsControl的ItemTemplate(DataTemple)中,然后将它们一个放在网格中.它有点工作,但它并不总是很好地排队等.

然后我找到了HeaderedItemsControl,我认为这是一个绝妙的主意,但不能让它工作,它根本不显示标题.我试过以下几点;

  • 只需在Xaml的"标题"中输入文本即可
  • 在ItemsControl.Header标记内放置带有静态文本的TextBlocks网格
  • 将网格放置在HeaderTemplate(Datatemplate)中并将其绑定到一个简单对象

我在Blend的一个小项目中完成了这一切,然后将它移到生产应用程序中,我只是使用了我创建的简单示例数据源.

我可能完全错过了这艘船,但任何帮助将不胜感激.

我目前的代码如下,首先是我的HeaderedItemsControl

<HeaderedItemsControl Header="HeaderedItemsControl"  
        ItemsSource="{Binding Collection, Mode=Default}" 
        ItemTemplate="{DynamicResource ItemsControlDataTemplate}" 
        HeaderTemplate="{DynamicResource ItemsControlHeaderDataTemplate}"/>
Run Code Online (Sandbox Code Playgroud)

然后我有一个按预期工作的ItemTemple

<DataTemplate x:Key="ItemsControlDataTemplate">
        <Grid d:DesignWidth="268">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.754*"/>
                <ColumnDefinition Width="0.246*"/>
            </Grid.ColumnDefinitions>
            <TextBlock Text="{Binding Property1, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" HorizontalAlignment="Stretch" Margin="0" />
            <TextBlock Text="{Binding Property2, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" HorizontalAlignment="Left" Margin="0" />
        </Grid>
    </DataTemplate>
Run Code Online (Sandbox Code Playgroud)

然后是反对其职业道德的标题,我已经尝试使用绑定和TextBlock.Text属性中的纯文本

<DataTemplate x:Key="ItemsControlHeaderDataTemplate">
        <Grid d:DesignWidth="268">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.754*"/>
                <ColumnDefinition Width="0.246*"/>
            </Grid.ColumnDefinitions>
            <TextBlock Text="{Binding Header.Header1, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" HorizontalAlignment="Stretch" Margin="0"/>
            <TextBlock Text="{Binding Header.Header2, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" …
Run Code Online (Sandbox Code Playgroud)

wpf xaml headereditemscontrol

10
推荐指数
1
解决办法
1万
查看次数

MediaElement未显示

我在我们正在构建的应用程序中的一个新创建的窗口上放置了一个MediaElement,将它的源设置为wmv(也用gif尝试过),但是当我运行它时它不会显示在屏幕上.

然后我创建了一个新的独立项目,它都按预期工作.

这是有效的代码:

<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" />
Run Code Online (Sandbox Code Playgroud)

这是不起作用的代码:

<MediaElement Source="pre-loader.wmv" LoadedBehavior="Manual" Name="Video" />
Run Code Online (Sandbox Code Playgroud)

我知道,它一样......我不明白吗?

我尝试了几种不同的方法,但得到了相同的结果.测试项目工程主要应用没有.

我在两个项目中使用相同的wmv文件,我也确保在两种情况下都复制到输出目录.设置为"如果更新则复制".

任何帮助都会......好吧,乐于助人

更新:我尝试使用snoop查找MediaElement,ActualWidth,ActualHeigt都为0,但height属性为140,width属性为NAN.此外,source = Default.

当我看到Blend中的屏幕时,我也得到"错误发生加载预览",但它并没有让我知道错误是什么.

.net wpf

5
推荐指数
1
解决办法
4090
查看次数

过滤LoadWith结果

有没有办法在Linq中过滤LoadWith

我目前有ReportCategory和Reports表.我想检索所有类别,然后只想加载活动报告.

这就是我到目前为止所拥有的.

DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<ReportCategory>(report => report.Reports);
db.LoadOptions = dlo;

var categories = from c in db.ReportCategory
                where c.InUse == true
                select c;
Run Code Online (Sandbox Code Playgroud)

它按预期返回每个类别的所有活动类别和所有报告,但我不需要所有报告,我只需要标记为InUse的报告.

所以我试过这个......

dlo.LoadWith<ReportCategory>(report => report.Reports.Where(r => r.InUse == true));
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误.

InvalidOperationException:指定的表达式必须是pA形式,其中p是参数,A是属性或字段成员.

有没有办法用LoadWith做这个或者我应该转移到使用连接?

.net linq

4
推荐指数
1
解决办法
704
查看次数

标签 统计

wpf ×3

.net ×2

binding ×1

headereditemscontrol ×1

linq ×1

xaml ×1