我正在尝试理解2009年11月工具包中实现的DataForm,我无法弄清楚如何将ComboBox绑定到枚举.有谁知道DataForm如何自动执行此操作?
背景
首先,我创建了一个类和枚举,下面这个文章,并允许数据形生成领域.DataForm为Name字符串字段生成了一个TextBox,并且(我假设是)一个用于Genres枚举字段的ComboBox.
我理解如何自定义DataForm的第一个目标是重现自动生成中生成的内容.我设法做了TextBoxes(和DatePicker,从这段代码中排除),但我很难将ComboBox绑定到枚举.
这是类(简化):
public class Movie
{
public string Name { get; set; }
public Genres Genre { get; set; }
}
public enum Genres
{
Comedy,
Fantasy,
Drama,
Thriller
}
Run Code Online (Sandbox Code Playgroud)
然后在MainPage我这样做:
private ObservableCollection<Movie> movies = new ObservableCollection<Movie>();
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
Movie movie = new Movie() { Name = "Fred", Genre = Genres.Thriller };
movies.Add(movie);
myDataForm.ItemsSource = movies;
}
Run Code Online (Sandbox Code Playgroud)
并在MainPage.xaml中,在Grid中:
<dataFormToolkit:DataForm x:Name="myDataForm" AutoEdit="False" AutoCommit="False"
Header="Foo Movie DB">
</dataFormToolkit:DataForm>
Run Code Online (Sandbox Code Playgroud)
对于自动生成的东西.当尝试手动生成它时,我得到了:
<dataFormToolkit:DataForm x:Name="myDataForm" AutoEdit="False" …
Run Code Online (Sandbox Code Playgroud) 我在Silverlight 4页面上有四个数据网格.我正在尝试为每个网格设置不同的列标题样式.我发现这个XAML在我将其嵌入每个DataGrid里面的<sdk:DataGrid.ColumnHeaderStyle>
标签时有效:
<Style TargetType="primitives:DataGridColumnHeader" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="primitives:DataGridColumnHeader">
<Grid Name="Root">
<vsm:VisualStateManager.VisualStateGroups>
<vsm:VisualStateGroup x:Name="SortStates" >
<vsm:VisualStateGroup.Transitions>
<vsm:VisualTransition GeneratedDuration="00:00:0.1" />
</vsm:VisualStateGroup.Transitions>
<vsm:VisualState x:Name="Unsorted" />
<vsm:VisualState x:Name="SortAscending">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity" Duration="0" To="1.0" />
</Storyboard>
</vsm:VisualState>
<vsm:VisualState x:Name="SortDescending">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="SortIcon" Storyboard.TargetProperty="Opacity" Duration="0" To="1.0" />
<DoubleAnimation Storyboard.TargetName="SortIconTransform" Storyboard.TargetProperty="ScaleY" Duration="0" To="-.9" />
</Storyboard>
</vsm:VisualState>
</vsm:VisualStateGroup>
</vsm:VisualStateManager.VisualStateGroups>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Rectangle x:Name="BackgroundRectangle" …
Run Code Online (Sandbox Code Playgroud) silverlight datagrid styles resourcedictionary silverlight-4.0
我有一个存储过程来运行它来创建一个新的票号:
INSERT INTO [Test_DB42].[dbo].[TicketNumber]
([On], [By])
Run Code Online (Sandbox Code Playgroud)
VALUES(CURRENT_TIMESTAMP,CURRENT_USER)
当我与具有db_datareader并执行权限的用户一起运行时,我获得了Active Directory samAccountName值,这是我想要的 - 该用户通过具有Login的AD组进行访问.
当我与具有sysadmin角色的用户一起运行时,它只是说'dbo'.此用途具有针对其AD帐户的显式登录.
有没有改变这个,或返回AD samAccountName或SQL登录名?
我正在使用Windows Server 2008 x64 R2计算机作为开发框.在其他许多东西中我安装了Visual Studio 2008 SP1.当我在处理项目时,我有时需要使用Debug> Start without Debugging(Ctrl + F5).如果程序抛出异常,我会看到一个新的R2风格的窗口.我很确定我在XP盒子上没有看到这个 - 这是我第一次直接在服务器上开发.有什么方法可以避免这种情况 - 它真的开始让我烦恼吗?
例如,我当前的项目是访问WCF服务 - 我使用Ctrl + F5来启动控制台程序客户端.我跑了,然后开窗.标题是我刚刚开始的项目的名称,它包含:
[insert-project-name-here] has stopped working
Windows can check online for a solution to the problem.
--> Check online for a solution and close the program
--> Close the program
--> Debug the program
V View problem details.
Run Code Online (Sandbox Code Playgroud)
单击"关闭程序"将实际关闭窗口,并在控制台中显示异常消息,这是我想要的(但没有额外的窗口模糊).
我该如何避免这种烦恼?
combobox ×1
data-binding ×1
dataform ×1
datagrid ×1
debugging ×1
enums ×1
ping ×1
powershell ×1
silverlight ×1
sql ×1
sql-server ×1
styles ×1
t-sql ×1