Hordit è per ora in beta e l'accesso è solo ad inviti. Ho qualche invito, se siete interessati lasciate un commento.
Is the craft dead?
4 mesi fa
Non c'è gusto in Italia ad essere informatici
In pratica, uno dei miei TreeViewItem è "databindato" ad una gerarchia di categorie.
<TreeViewItem Header="Categories" ItemsSource="{Binding Categories}" >
</TreeViewItem>
<HierarchicalDataTemplate DataType="{x:Type my:Category}"
ItemsSource="{Binding Path=Categories}" >
<TextBlock Text="{Binding Path=Name}" >
<TextBlock.ContextMenu>
<ContextMenu Name="MyMenu">
<MenuItem Header="New Category... "
Click="NewCategory_Click"
CommandParameter="{Binding Path=.}"/>
<MenuItem Header="Delete Category"
Click="DeleteItem_Click"
CommandParameter="{Binding Path=.}"/>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</HierarchicalDataTemplate>
private void DeleteItem_Click(object sender, RoutedEventArgs e)
{
Category cat = (Category)((MenuItem)sender).CommandParameter;
//Cancella la categoria...
}
Tra le (varie) cose che odio di Windows Vista (su cui non mancherò di riferire) c'è sicuramente la crescita smisurata dell'occupazione sello spazio disco.
var o = new List<string> { "One", "Two", "Three" };Notate la tipizzazione implicita delle variabili locali e l'inizializzazione della collection.
class Person
{
public string Nome { get; set; }
public string Cognome { get; set; }
}
var p = new Person { Nome = "Mario", Cognome = "Rossi" };
public static class TextHelpers
{
public static string ToStringSafe(this object ob)
{
if (null != ob) return ob.ToString();
else return string.Empty;
}
}
o.ToStringSafe();è tradotta dal compilatore in:
TextHelpers.ToStringSafe(o);
namespace System.Runtime.CompilerServices
{
public class ExtensionAttribute : Attribute { }
}
Console.WriteLine(o.ToStringSafe());
public delegate void Func<T>(T t);
public static class CollectionsHelpers
{
public static void Apply<T>(this ICollection<T> col,
Func<T> func)
{
foreach (T item in col)
{
func(item);
}
}
}
o.Apply((string x) => { Console.WriteLine(x); });

