<telerik:GridViewColumn.CellTemplate> <DataTemplate> <Grid Margin="0" Background="{Binding Converter={StaticResource MyFirstConverter}, UpdateSourceTrigger=PropertyChanged}"> <CheckBox IsChecked="{Binding ShouldDisplayCalendar, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" IsEnabled="False" /> </Grid> </DataTemplate> </telerik:GridViewColumn.CellTemplate><ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> </Style></ListView.ItemContainerStyle><telerik:RadGridView.ItemContainerStyle> <Style TargetType="??????"> <Setter Property="HorizontalContentAlignment" Value="Stretch"/> </Style></telerik:RadGridView.ItemContainerStyle><UserControl xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" mc:Ignorable="d" x:Name="UserControl" Width='Auto' Height='Auto'> <telerik:RadialGaug Name='radialGauge' Width='300' BorderBrush="Black" Foreground="Black" OuterBorderBrush="Black" FontSize="13.333"> <telerik:RadialGauge.OuterBackground> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="White"/> <GradientStop Color="#FFD4D4D4" Offset="1"/> <GradientStop Color="Gainsboro" Offset="0.57"/> <GradientStop Color="#FFADADAD" Offset="0.57"/> </LinearGradientBrush> </telerik:RadialGauge.OuterBackground> <telerik:RadialGauge.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FF202020"/> <GradientStop Color="#FF767676" Offset="0.778"/> <GradientStop Color="Black" Offset="1"/> <GradientStop Color="Black" Offset="0.261"/> </LinearGradientBrush> </telerik:RadialGauge.Background> <telerik:RadialScale Center='0.5,0.5' EndWidth='0.1' FontFamily='Tahoma' FontSize='12' MaxWidth='Infinity' Name='radialScale' Radius='0.8' StartAngle='120' StartWidth='0.1' StrokeThickness='0' SweepAngle='300' Max='600' BorderThickness='0' LogarithmicBase='10' MajorTicks='30' MiddleTicks='3' MinorTicks='2' Multiplier='1' Foreground="White" BorderBrush="{x:Null}" Margin="0" FontWeight='Bold'> <telerik:RadialScale.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="#FF3E3C81" Offset="0"/> <GradientStop Color="White" Offset="1"/> <GradientStop Color="#FF5550F1" Offset="0.183"/> <GradientStop Color="#FF5CFF3B" Offset="0.43"/> <GradientStop Color="#FF0044EB" Offset="0.426"/> <GradientStop Color="Black" Offset="0.983"/> <GradientStop Color="#FF925021" Offset="0.665"/> </LinearGradientBrush> </telerik:RadialScale.Background> <telerik:RadialScale.MajorTick> <telerik:TickProperties FontStyle='Italic' /> </telerik:RadialScale.MajorTick> <telerik:RadialScale.MiddleTick> <telerik:MiddleTickProperties Length='0.05' TickWidth='0.2' /> </telerik:RadialScale.MiddleTick> <telerik:RadialScale.MinorTick> <telerik:MinorTickProperties Length='0.03' TickWidth='0.3' /> </telerik:RadialScale.MinorTick> <telerik:IndicatorList Foreground="White" FontSize='8' FontWeight="Bold"> <telerik:Needle IsAnimated='True' Name='needle' Value='0' ArrowBorderBrush="Black" /> </telerik:IndicatorList> </telerik:RadialScale> </telerik:RadialGauge> </UserControl>public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); ICollection<DocumentResultHit> results = ResultHitManager.GetDummyData(); //Add the known columns this.radGridView1 .Columns.Add(new GridViewDataColumn() { UniqueName = "DocId" , DataMemberBinding = new Binding("DocumentID") }); //add the dynamic columns List<string> docColumns = ResultHitManager.GetDocumentColumns(); foreach(string str in docColumns ) { GridViewDataColumn docCol = new GridViewDataColumn(); docCol.Header = str; docCol.DataMemberBinding = new Binding(("SearchFields["+str+"]")); this.radGridView1.Columns.Add(docCol); } // Finally, bind the grid this.radGridView1 .ItemsSource = results ; } }public class DocumentResultHit { public int DocumentID { get; set; } Dictionary<string, List<string>> searchFields = new Dictionary<string, List<string>>(); public Dictionary<string, List<string>> SearchFields { get { return this.searchFields ; } } public IList<PageResultHit> Pages { get; set; } }public static class ResultHitManager { public static ICollection<DocumentResultHit> GetDummyData() { ICollection<DocumentResultHit> results = new List<DocumentResultHit>(); DocumentResultHit doc1 = new DocumentResultHit() { DocumentID = 1 }; doc1.SearchFields.Add("DocCol1", new List<string>() {"MultiField1", "MultiFiled2"}); doc1.SearchFields.Add("DocCol2", new List<string>() { "MultiField3", "MultiFiled4" }); PageResultHit page1 = new PageResultHit(); page1.PageFields.Add("PageCol1", new List<string>() { "MultiPageField1", "MultiPageFiled2" }); page1.PageFields.Add("PageCol2", new List<string>() { "MultiPageField3", "MultiPageFiled4" }); doc1.Pages = new List<PageResultHit>(); doc1.Pages.Add(page1); results.Add(doc1); DocumentResultHit doc2 = new DocumentResultHit() { DocumentID = 2 }; doc2.SearchFields.Add("DocCol1", new List<string>() { "Multidoc2Field1", "Multidoc2Filed2" }); doc2.SearchFields.Add("DocCol2", new List<string>() { "Multidoc2Field3", "Multidoc2Filed4" }); results.Add(doc2); return results; } public static List<string> GetDocumentColumns() { return new List<string>() {"DocCol1", "DocCol2"}; } public static List<string> GetPageColumns() { return new List<string>() { "PageCol1", "PageCol2" }; } }
public
{
InitializeComponent();
ICollection<DocumentResultHit> results = ResultHitManager
this.radGridView1 .Columns.Add(new GridViewDataColumn
{
UniqueName =
,
DataMemberBinding =
new Binding("DocumentID"
});
List<string> docColumns = ResultHitManager
foreach(string str in
{
GridViewDataColumn docCol = new GridViewDataColumn
docCol.Header = str;
docCol.DataMemberBinding =
new Binding(("SearchFields["+str+"]"
this
}
this
}
}
public class
{
public int
{
get
set
}
Dictionary<string, List<string>> searchFields = new Dictionary<string, List<string
public Dictionary<string, List<string
{
get { return this
}
public IList<PageResultHit> Pages { get; set
}
Finally here is the "GetDummyData" and "GetDocumentColumns" method
public static ICollection<DocumentResultHit
{
ICollection<DocumentResultHit> results = new List<DocumentResultHit
DocumentResultHit doc1 = new DocumentResultHit
doc1.SearchFields.Add(
"DocCol1", new List<string>() {"MultiField1", "MultiFiled2"
doc1.SearchFields.Add(
"DocCol2", new List<string>() { "MultiField3", "MultiFiled4"
PageResultHit page1 = new PageResultHit
page1.PageFields.Add(
"PageCol1", new List<string>() { "MultiPageField1", "MultiPageFiled2"
page1.PageFields.Add(
"PageCol2", new List<string>() { "MultiPageField3", "MultiPageFiled4"
doc1.Pages =
new List<PageResultHit
doc1.Pages.Add(page1);
results.Add(doc1);
DocumentResultHit doc2 = new DocumentResultHit
doc2.SearchFields.Add(
"DocCol1", new List<string>() { "Multidoc2Field1", "Multidoc2Filed2"
doc2.SearchFields.Add(
"DocCol2", new List<string>() { "Multidoc2Field3", "Multidoc2Filed4"
results.Add(doc2);
return
}
public static List<string
{
return new List<string>() {"DocCol1", "DocCol2"
}
Hi,All:
My application use Win32 window to host my WPF window. I am using WindowInteropHelper to set my WPF window owner to the Win32 window handler. It works fine. But If I move the Win32 window (like to 2nd screen), the WPF window does not move with it. I have to manually set the WPF window Left, top, Width and Height. Is this by design or did I miss something here? What is the difference between the Owner and Parent (window)? Should I set the WPF parent window to the win32 handler to let the WPF window move with the win32 window?
Code snippet:
IntPtr win32WndHandler;
WindowInteropHelper helper = new WindowInteropHelper(myWPFWindow);
helper.Owner = win32WndHandler;
Thanks a lot