我是一个WPF菜鸟,所以请放轻松我;-)
我正在尝试创建一个分组的DataGrid(WPF工具包版本).我已经成功创建了数据源,DataGrid本身,所需的CollectionViewSource和组头的样式(使用扩展器).
我想通过名为"Assign_To"的属性进行分组,并在标题中显示相关值(分组项共享的值).但是,我无法弄清楚如何绑定到当前组/项以返回其Assign_To属性.
我得到的最接近的(如下所示)绑定到整个CollectionViewSource,它返回Assign_To的固定值.绑定到当前项/组以便为"Assign_To"返回正确值的正确方法是什么?
希望有人能提供帮助.谢谢!
安迪T.
这是源头......
<Window DataContext="{Binding Source={StaticResource SampleDataSource}}"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Class="DataGridTest.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480" mc:Ignorable="d">
<Window.Resources>
<CollectionViewSource x:Key="CVS" Source="{Binding MyData}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Assign_To"/>
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
<Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="True">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Assign To: "/>
<TextBlock Text="{Binding Source={StaticResource CVS}, Path=Assign_To}"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter/>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<dg:DataGrid
ItemsSource="{Binding Source={StaticResource CVS}}"
SelectionUnit="CellOrRowHeader"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserResizeRows="False">
<dg:DataGrid.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
<GroupStyle.Panel> …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个用户控件来显示一个三个月的日历.该控件基于WPF日历控件(WPF Toolkit 2009-06),我想将几个Calendar的属性传递给我的用户控件的相应属性.用户控件属性设置为依赖项属性,其基础类型与日历属性的类型匹配.这是我的标记:
<StackPanel>
<toolkit:Calendar Name="MasterCalendar"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
<toolkit:Calendar Name="SlaveCalendar1"
DisplayDate="{Binding DisplayDate, Converter={StaticResource IncrementalMonthConverter}, ElementName=MasterCalendar, Mode=OneWay}"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
<toolkit:Calendar Name="SlaveCalendar2"
DisplayDate="{Binding DisplayDate, Converter={StaticResource IncrementalMonthConverter}, ElementName=SlaveCalendar1, Mode=OneWay}"
SelectionMode="{Binding Path=SelectionMode, Mode=OneWay}"
SelectedDate="{Binding Path=SelectedDate, Mode=OneWayToSource}"
SelectedDates="{Binding Path=SelectedDates, Mode=OneWayToSource}"/>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
除SelectedDates
属性外,所有属性绑定都没有问题.我的绑定出现以下错误:
'SelectedDates'属性是只读的,不能通过标记设置.
我怀疑是因为该SelectedDates
属性是一个集合,但我不知道如何解决这个问题.任何人都可以启发我的问题的原因,并建议修复?谢谢你的帮助.
我创建了一个Timer类,当计时器到期时必须调用一个回调方法.目前我使用普通函数指针(它们被声明为void(*)(void),当Elapsed事件发生时,函数指针被调用.
是否可以使用也具有签名void(AnyClass ::*)(void)的成员函数执行相同的操作?
谢谢你的队友.
编辑:此代码必须在Windows上以及在实时操作系统(VxWorks)上工作,因此不使用外部库会很棒.
EDIT2:只是为了确定,我需要的是有一个Timer类,它在构造函数中接受一个参数,不带参数,然后返回void的"AnyClass.AnyMethod".我必须存储这个参数,后者在代码中只执行此变量指向的方法.希望很清楚.
我包含python.h
在我的Visual C++ DLL文件项目中,该项目导致隐式链接python25.dll
.但是,我想加载一个特定的python25.dll
(计算机上可以存在几个),所以我创建了一个名为test.manifest的非常简单的清单文件:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<file name="python25.dll" />
</assembly>
Run Code Online (Sandbox Code Playgroud)
我正在将它与Visual Studio生成的自动嵌入式清单文件合并,这要归功于:
Configuration Properties -> Manifest Tool -> Input and Output -> Additional Manifest Files
-->$(ProjectDir)\src\test.manifest
Run Code Online (Sandbox Code Playgroud)
python25.dll
现在加载了两次:清单请求的那个,以及Windows应该通过其搜索顺序找到的那个.
Process Explorer的Screendump http://dl.dropbox.com/u/3545118/python25_dll.png
为什么会发生这种情况?如何加载清单指向的DLL文件?
我正在构建一个Web应用程序,其中大多数允许用户使用客户端计算机中安装的证书对PDF文档进行数字签名.
该文档一旦签署,就应该回发到服务器,在那里它将存储签名版本.
服务器正在运行Classic ASP/ASP.NET
我应该去哪儿?
我正在使用Visual Studio 2005开发一些C#项目,我正在尝试将平台目标从x86更改为任何CPU.我已经完成了我所知道的所有依赖项,并确保它们也是使用corflags工具为任何CPU构建的.
当我在Visual Studio 2005中更改平台目标时,似乎它保存了更改,但是当我构建项目时,它仍然使用x86.下次打开项目时,平台目标已重置为x86.
这只发生在解决方案中的几个项目中,这是否意味着某处还有其他32位依赖项?
我可以在命令行上手动运行C#编译器/platform:anycpu
,但我没有收到错误,但我不确定这是否正确,我希望能够在Visual Studio中构建.
我该怎么做才能解决这个问题?
当我尝试'git push origin master'到我的外部磁盘上的远程存储库时,git警告发出声明,在默认情况下拒绝检出存储库将在下一版本的git中被拒绝.在外部磁盘上我已经检查了项目,我想将我在计算机上所做的更改发送到这些reposiotry.'git push origin master'不是正确的方法吗?我必须在外部磁盘上的存储库中"git pull ..."吗?所以我不能推动改变而只是拉动它们?只与'裸'存储库一起工作是不同的?因此,如果我的外部磁盘上的存储库是一个裸存储库,我可以将更改推送到它吗?我理解得对吗?
有没有人知道如何在intellij中设置一个实时模板来做专门的setter - 我正在使用v5,但我很乐意接受更新版本的知识) -
我的第一个需求是firePropertyChange setter:
public final static String $PROPERTY$ = "$property$"
public void set$Property$($TYPE$ $property$) {
Object oldValue = this.$property$;
this.$property$ = $property$;
firePropertyChange($PROPERTY$, oldValue, $property$);
}
Run Code Online (Sandbox Code Playgroud)
我有一个半工作版本,使用如下定义的变量生成实现:$ property $ - > completeSmart()$ PROPERTY $ - > completeSmart()
我的第二个需求是一个构建器样式的setter,它调用常规setter然后在set之后返回:
public $THIS_TYPE$ with$Property$($TYPE$ $property$) {
set$Property$($property$);
return this;
}
Run Code Online (Sandbox Code Playgroud)
对于这个我没有什么好的东西:我仍然需要打字很多!
有什么建议吗?
我在Nexus One上测试我的应用程序,我遇到了一些问题.我的主题是Light,当显示内部子PreferenceScreen时,窗口背景变为黑色,而不是保持PreferenceActivity的一个.
<PreferenceScreen android:title="main preferences">
...
<PreferenceScreen android:title="sub screen">
</PreferenceScreen>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)
问题是什么?
沃特