我有两个示例类
class ClassToResolve
{
private List<CollectionItem> _coll;
public ClassToResolve(List<CollectionItem> coll)
{
_coll = coll;
}
}
class CollectionItem
{
//...
}
Run Code Online (Sandbox Code Playgroud)
我需要解决ClassToResolve
var classToResolve = new ClassToResolve(
new List<CollectionItem>()
{
new CollectionItem(),
new CollectionItem(),
new CollectionItem()
}
);
Run Code Online (Sandbox Code Playgroud)
现在我以某种方式解决它
var classToResolve = new ClassToResolve(
new List<CollectionItem>()
{
unity.Resolve<CollectionItem>(),
unity.Resolve<CollectionItem>(),
unity.Resolve<CollectionItem>()
}
);
Run Code Online (Sandbox Code Playgroud)
有没有办法使用动态注册解析ClassToResolve?
.net c# dependency-injection inversion-of-control unity-container
我使用MVVM,并使用一些代码将datagrid绑定到集合:
<DataGrid ItemsSource="{Binding Entites}" AutoGenerateColumns="False" IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedEntity}">
Run Code Online (Sandbox Code Playgroud)
我也使用样式(RowStyle或ItemContainerStyle)使用绑定到IsSelectedProperty
<DataGrid.RowStyle>
<Style>
<Setter Property="DataGridRow.IsSelected" Value="{Binding IsSelectedProperty, Mode=TwoWay}" />
</Style>
</DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)
它运作良好.但是如果我向下和向上滚动数据网格,它就会停止工作.
我还没有找到一个例子 - 如何处理字符转义。我找到了一个代码示例:
static void Main(string[] args)
{
string text = "'test \\\' text'";
var result = Grammar.QuotedText.End().Parse(text);
}
public static class Grammar
{
private static readonly Parser<char> QuoteEscape = Parse.Char('\\');
private static Parser<T> Escaped<T>(Parser<T> following)
{
return from escape in QuoteEscape
from f in following
select f;
}
private static readonly Parser<char> QuotedTextDelimiter = Parse.Char('\'');
private static readonly Parser<char> QuotedContent =
Parse.AnyChar.Except(QuotedTextDelimiter).Or(Escaped(QuotedTextDelimiter));
public static Parser<string> QuotedText = (
from lquot in QuotedTextDelimiter
from content in QuotedContent.Many().Text()
from rquot in …
Run Code Online (Sandbox Code Playgroud)