<Style TargetType="telerik:RadDiagramConnection" > <!----> <Setter Property="Visibility" Value="{Binding Visibility, Mode=TwoWay}" /> <!---->public class Item : INPBase { #region Content private string _Content; public string Content { get { return _Content; } set { Set(ref _Content, value); } } #endregion }public class Link : INPBase, ILink<Item> { public Visibility Visibility { get; set; } public Item Source { get; set; } public Item Target { get; set; } object ILink.Source { get { return ((object)Source); } set { if (!((object)Source).Equals(value)) { Source = value as Item; } } } object ILink.Target { get { return ((object)Target); } set { if (!((object)Target).Equals(value)) { Target = value as Item; } } } public Link() { Visibility = Visibility.Visible; }}public class TestTree : INPBase, IGraphSource { public ObservableCollection<Item> InternalItems { get; private set; } public ObservableCollection<Link> InternalLinks { get; private set; } public Item RootNode { get; private set; } public System.Collections.IEnumerable Items { get { return (InternalItems); } } public IEnumerable<ILink> Links { get { return(InternalLinks); } } public TestTree() { InternalItems = new ObservableCollection<Item>(); InternalLinks = new ObservableCollection<Link>(); BuildTree(); } private void BuildTree() { RootNode = new Item() { Content = "One" }; Item iTwo = new Item() { Content = "Two" }; Item iThree = new Item() { Content = "Three" }; Item iFour = new Item() { Content = "Four" }; InternalItems.Add(RootNode); InternalItems.Add(iTwo); InternalItems.Add(iThree); InternalItems.Add(iFour); InternalLinks.Add(new Link() { Target = RootNode, Source = iTwo }); InternalLinks.Add(new Link() { Target = RootNode, Source = iThree }); InternalLinks.Add(new Link() { Target = RootNode, Source = iFour }); } public void RebuildTree() { InternalLinks.Clear(); InternalItems.Clear(); BuildTree(); } public void AddNodeWithLink() { Item iNew = new Item() { Content = "I" + InternalItems.Count.ToString() }; Item iSource = InternalItems.First(); InternalItems.Add(iNew); InternalLinks.Add(new Link() { Target = iSource, Source = iNew }); } }public class TestVM : INPBase { private TestTree _TestTree; public TestTree TestTree { get { return _TestTree; } } public TestVM() { _TestTree = new TestTree(); } public void AddNode() { _TestTree.AddNodeWithLink(); } public void Rebuild() { _TestTree.RebuildTree(); }}System.Windows.Data Error: 40 : BindingExpression path error: 'Visibility' property not found on 'object' ''TestVM' (HashCode=61656587)'. BindingExpression:Path=Visibility; DataItem='TestVM' (HashCode=61656587); target element is 'RadDiagramConnection' (Name=''); target property is 'Visibility' (type 'Visibility')
<Grid DataContext="{Binding}" x:Name="grdHolder"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Button Content="Add node" VerticalAlignment="Center" HorizontalAlignment="Left" Click="AddNode_Click" /> <Button Content="Rebuild" VerticalAlignment="Center" HorizontalAlignment="Center" Click="Rebuild_Click" /> <Button Content="Layout" VerticalAlignment="Center" HorizontalAlignment="Right" Click="Layout_Click" /> <telerik:RadDiagram x:Name="dG" GraphSource="{Binding TestTree}" Grid.Row="1"/> </Grid><telerik:RadTabItem > <telerik:RadTabItem.Content> <Grid Name="displaypending" > <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> </Grid> </telerik:RadTabItem.Content> </telerik:RadTabItem>
if (displaypending != null) { displaypending.Children.Clear(); Pending pending = new Pending(); displaypending.Children.Add(pending); IsScanningAllowed = ApplicationVariables.IsScannerInitiated; }Hi,
I have a layout with RadTreeView docked to left using RadDocking and a RadTileView inside a DocumentHose. While I unpin the panel which is docked to left and don't move the mouse from pin button, the unpinned panel expands again but it is empty.
Please find my code below:
<telerik:RadDocking Background="Transparent" BorderThickness="0" HorizontalAlignment="Left" >
<telerik:RadDocking.DocumentHost>
<telerik:RadTileView x:Name="c_tileView" ColumnWidth="Auto" RowsCount="2"
RowHeight="Auto" MinimizedColumnWidth="450" MinimizedRowHeight="150"
IsItemsSizeInPercentages="True" PreservePositionWhenMaximized="true"
telerik:TileViewPanel.IsColumnsShrinkEnabled="True"
telerik:TileViewPanel.IsRowsShrinkEnabled="True"
telerik:TileViewPanel.IsSizeBoundToPosition="True"
telerik:PersistenceManager.StorageId="tileView">
<telerik:RadTileViewItem RestoredHeight="30" MinimizedHeight="150" RestoredWidth="28" >
<Rectangle/>
</telerik:RadTileViewItem>
<telerik:RadTileViewItem RestoredHeight="25" MinimizedHeight="150" RestoredWidth="48" >
<Rectangle/>
</telerik:RadTileViewItem>
<telerik:RadTileViewItem RestoredHeight="50" MinimizedHeight="150" RestoredWidth="24" >
<Rectangle/>
</telerik:RadTileViewItem>
</telerik:RadTileView>
</telerik:RadDocking.DocumentHost>
<telerik:RadSplitContainer MaxWidth="300" telerik:DockingPanel.InitialSize="210,150" InitialPosition="DockedLeft">
<telerik:RadPaneGroup>
<telerik:RadPane Header="Screen Models" CanUserClose="False"
ContextMenuTemplate="{x:Null}"
CanDockInDocumentHost="False" IsPinned="False">
<telerik:RadTreeView x:Name="c_treeView" Grid.Row="1" Margin="0"
VerticalAlignment="Stretch" IsLineEnabled="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
IsDragDropEnabled="False">
<telerik:RadTreeViewItem Header="Test A" IsExpanded="True">
<telerik:RadTreeViewItem Header="Model A"/>
<telerik:RadTreeViewItem Header="Model B"/>
<telerik:RadTreeViewItem Header="Model C"/>
<telerik:RadTreeViewItem Header="Model D"/>
</telerik:RadTreeViewItem>
</telerik:RadTreeView>
</telerik:RadPane>
</telerik:RadPaneGroup>
</telerik:RadSplitContainer>
</telerik:RadDocking>
<telerik:RadGridView ItemsSource="{Binding Persons}" SelectedItem="{Binding Selectedperson, Mode=TwoWay}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" AutoGenerateColumns="True" telerik:StyleManager.Theme="Windows7"> <telerik:RadGridView.ChildTableDefinitions> <telerik:GridViewTableDefinition> </telerik:GridViewTableDefinition> </telerik:RadGridView.ChildTableDefinitions> <telerik:RadGridView.HierarchyChildTemplate> <DataTemplate> <telerik:RadGridView AutoGenerateColumns="True" telerik:StyleManager.Theme="Windows7" ItemsSource="{Binding Details}"> </telerik:RadGridView> </DataTemplate> </telerik:RadGridView.HierarchyChildTemplate> </telerik:RadGridView>namespace MasterDetailViaDataTables{ public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new MainViewModel(); }namespace MasterDetailViaDataTables{ public class PersonDetails : BindableBase { private int _PersonID; public int PersonID { get { return _PersonID; } set { this.SetProperty<int>(ref this._PersonID, value); } } private string address; public string Address { get { return address; } set { this.SetProperty<string>(ref this.address, value); } } private string _Description; public string Description { get { return _Description; } set { this.SetProperty<string>(ref this._Description, value); } } public static ObservableCollection<PersonDetails> GetDetails() { ObservableCollection<PersonDetails> details = new ObservableCollection<PersonDetails>(); try { DataTable table = new DataTable("persondetail"); DataColumn PersonID = new DataColumn("PersonID", typeof(System.Int64)); DataColumn Address = new DataColumn("Address", typeof(System.String)); DataColumn Description = new DataColumn("Description", typeof(System.String)); table.Columns.Add(PersonID); table.Columns.Add(Address); table.Columns.Add(Description); for (int pID = 1; pID <= 5; pID++) { for (int i = 0; i < 2; i++) { DataRow row = table.NewRow(); row["PersonID"] = pID; row["Address"] = "Address" + (pID-1).ToString() + " - " + i.ToString(); row["Description"] = "Description" + (pID-1).ToString() + " - " + i.ToString(); table.Rows.Add(row); } } details.Clear(); for (int i = 0; i < table.Rows.Count; ++i) details.Add(new PersonDetails { PersonID = Convert.ToInt32(table.Rows[i][0]), Address = table.Rows[i][1].ToString(), Description = table.Rows[i][2].ToString() }); } catch (Exception ex) { Console.WriteLine(ex.Message); } return details; } }public class Person : BindableBase{ private int _PersonID; private string _FirstName; private string _LastName; public int PersonID { get { return _PersonID; } set { this.SetProperty<int>(ref this._PersonID, value); } } public string FirstName { get { return _FirstName; } set { this.SetProperty<string>(ref this._FirstName, value); } } public string LastName { get { return _LastName; } set { this.SetProperty<string>(ref this._LastName, value); } } public static ObservableCollection<Person> GetPersons() { ObservableCollection<Person> persons = new ObservableCollection<Person>(); try { DataTable table = new DataTable("person"); DataColumn id = new DataColumn("PersonID", typeof(System.Int64)); id.AutoIncrement = true; id.AutoIncrementSeed = 1; DataColumn FirstName = new DataColumn("FirstName", typeof(System.String)); DataColumn LastName = new DataColumn("LastName", typeof(System.String)); table.Columns.Add(id); table.Columns.Add(FirstName); table.Columns.Add(LastName); for (int i = 0; i < 5; i++) { DataRow row = table.NewRow(); row["FirstName"] = "FirstName" + i.ToString(); row["LastName"] = "LastName" + i.ToString(); table.Rows.Add(row); } persons.Clear(); for (int i = 0; i < table.Rows.Count; ++i) persons.Add(new Person { PersonID = Convert.ToInt32(table.Rows[i][0]), FirstName = table.Rows[i][1].ToString(), LastName = table.Rows[i][2].ToString() }); } catch (Exception ex) { Console.WriteLine(ex.Message); } return persons; }}public class MainViewModel : BindableBase, INotifyPropertyChanged{ public MainViewModel() { this.Persons = Person.GetPersons(); } private ObservableCollection<Person> personValues; public ObservableCollection<Person> Persons { get { return personValues; } set { this.SetProperty<ObservableCollection<Person>>(ref this.personValues, value); } } private ObservableCollection<PersonDetails> detailsvalues; public ObservableCollection<PersonDetails> Details { get { if (this.Selectedperson == null) { return null; } return this.LoadDetails(this.Selectedperson.PersonID); } } private ObservableCollection<PersonDetails> LoadDetails(int personID) { ObservableCollection<PersonDetails> details = new ObservableCollection<PersonDetails>(); foreach (PersonDetails detail in PersonDetails.GetDetails().Where(item => item.PersonID == personID)) { details.Add(detail); } return details; } private Person selectedPersonValue; public Person Selectedperson { get { return selectedPersonValue; } set { this.SetProperty<Person>(ref this.selectedPersonValue, value); this.RaiseNotification("Details"); } }}