在WPF的DataGrid控件中,如果将列设置为其中一个默认列类型(如DataGridTextColumn或DataGridCheckBoxColumn),对该列进行排序,然后更改其值,网格将自动重新排序.
但是,如果使用DataGridTemplateColumn(并允许对列进行排序),则可以对其进行排序,但更改此列中单元格的值不会导致网格未重新排序.我如何诱导它自动触发重新排序?
XAML:
<DataGrid Name="grid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="First name" Binding="{Binding First}"/>
<DataGridTemplateColumn Header="Last name" SortMemberPath="Last">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Last}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>Run Code Online (Sandbox Code Playgroud)
捆绑:
ObservableCollection items = new ObservableCollection();
grid.ItemsSource = items;
items.Add(new Character() { First = "Homer", Last = "Simpson" });
items.Add(new Character() { First = "Kent", Last = "Brockman" });
items.Add(new Character() { First = "Montgomery", Last = "Burns" });Run Code Online (Sandbox Code Playgroud)
这是我的项目类,以防万一相关:
public class Character : INotifyPropertyChanged {
private string first, last;
public event PropertyChangedEventHandler …Run Code Online (Sandbox Code Playgroud) 我正在编写一个可以使用IronPython编写脚本的C#应用程序.我希望能够从C#代码发出非致命的Python警告(可以使用常规的Python警告捕获系统来处理).
我已经找到了PythonWarnings.warn方法IronPython.Modules,但它需要一个CodeContext,我无法弄清楚如何创建/获取其中之一.
我尽可能管理,在Windows Server 2003上设置IIS(6.0),PHP(5.2.8)和MySQL(5.1.30),所有涉及到(我认为)在IIS和PHP中的问题让事情互相交谈.
PHP确实有效 - 但是,我无法使用PHP页面中的mysql或mysqli库.
致命错误:找不到类'mysqli'...
致命错误:在...中调用未定义的函数mysql_connect()
在PHP页面中使用phpinfo()时,不会出现与MySQL或MySQLi相关的信息.
但是,当我从命令行调用PHP时,例如
> php -r phpinfo()
Run Code Online (Sandbox Code Playgroud)
有关MySQL和MySQLi的信息确实出现在输出中.
重新启动IIS或操作系统不会产生进一步的效果.我在PHP根目录中只有一个php.ini文件.
我是否还需要以某种方式将MySQL连接到IIS,还是存在其他问题?
对于某些单元测试,我想将CurrentCulture设置为特定的文化(然后在以后反转这些更改).因为我需要在几个地方做这件事,我正在考虑编写一个CultureChanger类来保存旧文化并在其构造函数中设置新文化,然后在处理过程中重置旧文化.
然后我可以像这样使用它:
using(new CultureChanger(culture)){
//some code and assertions with no references to the CultureChanger
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,是否有可能在使用块完成之前的某个时间清理CultureChanger?