我正在研究SQL Server 2005的查询,需要返回带有两个"索引"字段的数据.每次'shade'列更改时,第一个索引't_index'应该递增,而第二个索引在'shade'列中的值的分区内递增:
t_index s_index shade
1 1 A
1 2 A
1 3 A
1 4 A
1 5 A
2 1 B
2 2 B
2 3 B
2 4 B
2 5 B
Run Code Online (Sandbox Code Playgroud)
要获取s_index列,我使用以下内容:
Select ROW_NUMBER() OVER(PARTITION BY [shade] ORDER BY [shade]) as s_index
Run Code Online (Sandbox Code Playgroud)
我的问题是如何让第一个索引只在'shade'列中的值发生变化时递增?
我在第一次涉足WPF字符串格式时遇到了困难.我希望能够在基础值为零时使用空字符串格式化数据网格中的文本框列,并将所有其他值格式化为0.000.但是,我的XAML似乎不能胜任这项工作,因为它显示所有值的空白而不仅仅是零:
<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat='{}{0.000;; }'" Width="Auto" />
Run Code Online (Sandbox Code Playgroud)
我正在使用这里描述的分号运算符,并在第二个分号后面添加了一个空格来获取空字符串.
非常感谢!
更新
这样做的诀窍:
<DataGridTextColumn Header="dL" Binding="{Binding Path=Value.DLHistoric, StringFormat=0.000;;#}" Width="Auto" />
Run Code Online (Sandbox Code Playgroud) 我有一个用户控件,它继承自WPF DataGrid控件,并且我传递了不同的对象列表,因此,网格列依赖于(即自动生成)我发送的对象类.
<userc:cfDataGrid x:Name="grdResults"
FontStyle="Normal"
FontFamily="Microsoft Sans Serif"
FontSize="14"
RowHeight="30"
AutoGenerateColumns="True"
Margin="12"
AlternatingRowBackground="Gainsboro"
AlternationCount="2"
ItemsSource="{Binding Results}"
IsReadOnly="True"
HeaderNames="{Binding Headers}" >
</userc:cfDataGrid>
Run Code Online (Sandbox Code Playgroud)
现在,我还要通过一个具有SolidColorBrush数据类型属性的对象列表,并能够使用此值来设置单元格的背景颜色,而不是显示实际值.
我没有做很多关于样式等的工作,所以我想问一下是否有人可以给我一些关于如何捕获具有SolidColorBrush数据类型的列的指针 - 并执行上述操作 - 而不依赖于列的名称?
任何指针将不胜感激!
CC
wpf ×2
c# ×1
datagrid ×1
formatting ×1
sql ×1
sql-server ×1
wpf-controls ×1
wpfdatagrid ×1
xaml ×1