我已经尝试了一切,无处可去,所以我希望有人可以给我一点时间.我根本无法获得绑定来成功地拉取数据网格中的数据.
我有一个DataTable,其中包含多个MyDataType列
public class MyData
{
string nameData {get;set;}
bool showData {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
MyDataType有2个属性(一个字符串,一个布尔值)我创建了一个测试DataTable
DataTable GetDummyData()
{
DataTable dt = new DataTable("Foo");
dt.Columns.Add(new DataColumn("AnotherColumn", typeof(MyData)));
dt.Rows.Add(new MyData("Row1C1", true));
dt.Rows.Add(new MyData("Row2C1", false));
dt.AcceptChanges();
return dt;
}
Run Code Online (Sandbox Code Playgroud)
我有一个WPF DataGrid,我想展示我的DataTable.但我想做的就是改变每个单元格的呈现方式,以便每个单元格显示[TextBlock] [Button],并将值绑定到MyData对象,这就是我遇到麻烦的地方.
我的XAML看起来像这样
<Window.Resources>
<ResourceDictionary>
<DataTemplate x:Key="MyDataTemplate" DataType="MyData">
<StackPanel Orientation="Horizontal" >
<Button Background="Green" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="5,0,0,0" Content="{Binding Path=nameData}"></Button>
<TextBlock Background="Green" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0,0,0" Text="{Binding Path=nameData}"></TextBlock>
</StackPanel>
</DataTemplate>
</ResourceDictionary>
</Window.Resources>
<Grid>
<dg:DataGrid Grid.Row="1" ItemsSource="{Binding}" AutoGenerateColumns="True"
x:Name="dataGrid1" SelectionMode="Single" CanUserAddRows="False"
CanUserSortColumns="true" CanUserDeleteRows="False" AlternatingRowBackground="AliceBlue"
AutoGeneratingColumn="dataGrid1_AutoGeneratingColumn" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
现在我加载的所有内容都是尝试将DataTable绑定到WPF …
将异步调用转换为同步是否有任何良好的实践(模式)?
我有一个第三方库,其方法都是异步的,以获得任何方法的结果,你必须听一个事件,这将带来一些上下文.基本上它看起来像:
service.BeginSomething(...);
service.OnBeginSomethingCompleted += ;
Run Code Online (Sandbox Code Playgroud)
我需要的是在BeginSomething完成后执行一些代码(因此在触发OnBeginSomethingCompleted之后).在事件中处理响应非常不方便.
我能想到的唯一方法是运行Thread.Sleep循环并等待表单上的某个字段更新,但它看起来不是非常优雅的sollution.
我正在使用.net 4.0.
如何获取DataGrid中的行列表?不是绑定的项目,而是
DataGridRows列表.
我需要控制这些行的可见性,并且只能将其控制为a DataGridRow而不是数据对象.
谢谢!
根据定义,虚拟属性或方法是要被覆盖的子类可见的方法.但是,例如NHibernate使用虚拟属性来确保延迟加载.
我的问题不是关于NHibernate,而是如何使用虚拟属性来实现延迟加载?是否有任何关于我不知道的虚拟属性的隐藏行为?
我有以下界面
public interface IHandler<T>
{
void Handle(T myObject);
}
Run Code Online (Sandbox Code Playgroud)
我希望有一个HandlersManager类,它包含对象类型与相应处理程序之间的映射,但我不确定我应该如何定义保存此映射的对象.
例如,我想要的是:
typeof(string) --> instance of IHandler<string>
typeof(MyClass) --> instance of IHandler<MyClass>
Run Code Online (Sandbox Code Playgroud)
到目前为止,我得到的最好的事情是Dictionary<Type, object>为映射定义,但在这种情况下,我必须在IHandler<T>每次获取它时将值转换为值.
有没有更好的解决方案或我完全错过的东西?
WPF ListView类可以设置为在没有外部的情况下自动处理滚动ScrollViewer,并且可以通过编写XAML来为控件的内部滚动条注册事件处理程序:
<ListView ScrollViewer.ScrollChanged="ScrollChanged" />
Run Code Online (Sandbox Code Playgroud)
如何将它附加到MVVM light命令?我尝试了以下,但它不起作用:
<ListView>
<i:Interaction.Triggers>
<i:EventTrigger EventName="ScrollViewer.ScrollChangedEvent">
<cmd:EventToCommand Command="{Binding ScrollCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ListView>
Run Code Online (Sandbox Code Playgroud)
注意:ScrollCommand- RelayCommand来自我的viewmodel.
在.NET 3.5中使用C#与Visual Studio 2008,我试图在打开的工作簿中设置焦点(或激活)特定的工作表:
以下是一些属性:
public Excel.Application xlApp {get;set;}
public Excel.Workbook xlWorkBook { get; set; }
public Excel.Worksheet xlWorkSheet { get; set; }
public Excel.Range range { get; set; }
Run Code Online (Sandbox Code Playgroud)
以下是我尝试选择特定工作表的方法:
(xlWorkSheet)Application.ActiveWorkbook.Sheets[FormControls.WorksheetFocus]).Select(Type.Missing);
Run Code Online (Sandbox Code Playgroud)
我也尝试过这种方式:
((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[1]).Select();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何使用C#在工作簿中选择特定工作表?
解释定义的位置:
namespace EmailSalesVolumeSolution
{
class WorkBook
{
public string MasterFileName { get; set; }
public string[] DistinctEmails { get; set; }
public Excel.Application xlApp {get;set;}
public Excel.Workbook xlWorkBook { get; set; }
public Excel.Worksheet xlWorkSheet { get; set; }
public Excel.Range range { get; set; …Run Code Online (Sandbox Code Playgroud) 使用IClientMessageInspector界面时,我可以从BeforeSendRequest方法中取消请求吗?null无论如何,返回发送请求.
public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
if(Condition)
{
return null; //I want cancel my send
}
else
{
return request;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读http://msdn.microsoft.com/en-US/library/vstudio/hh191443.aspx.示例代码:
async Task<int> AccessTheWebAsync()
{
// You need to add a reference to System.Net.Http to declare client.
HttpClient client = new HttpClient();
// GetStringAsync returns a Task<string>. That means that when you await the
// task you'll get a string (urlContents).
Task<string> getStringTask = client.GetStringAsync("http://msdn.microsoft.com");
// You can do work here that doesn't rely on the string from GetStringAsync.
DoIndependentWork();
// The await operator suspends AccessTheWebAsync.
// - AccessTheWebAsync can't continue until getStringTask is complete.
// - Meanwhile, …Run Code Online (Sandbox Code Playgroud) c# ×5
.net ×4
wpf ×3
datagrid ×2
.net-4.0 ×1
android ×1
async-await ×1
asynchronous ×1
binding ×1
c#-5.0 ×1
data-binding ×1
datatable ×1
dictionary ×1
eventtrigger ×1
excel ×1
excel-2007 ×1
generics ×1
git ×1
lazy-loading ×1
mvvm ×1
mvvm-light ×1
properties ×1
repository ×1
virtual ×1
visibility ×1
wcf ×1