Solved

WPF: Reference to a "cousin" element

Posted on 2010-08-19
8
484 Views
Last Modified: 2013-11-12
Hi!

I search how to bind my data context to a cousin:

Simplified architecture:
StackPanel
-->StackPanel
----->GridView
----->....
--->StackPanel
------>textobxes

how my textboxes can get the reference to the gridview? I have to do this xaml side!

I tried ElementName, but it can't find it :(

Thank you!
0
Comment
Question by:Nargzul
8 Comments
 
LVL 18

Expert Comment

by:Anil Golamari
ID: 33475875
0
 
LVL 5

Expert Comment

by:berXpert
ID: 33482304
You may try to define a CollectionViewSource, as explained in Bea Stollnitz page:

http://bea.stollnitz.com/blog/?p=387

CollectionViewSource can be used to sort, filter, group or track the current item, like in your sample.

Definition cab be done in XAML.
0
 
LVL 1

Author Comment

by:Nargzul
ID: 33482642
@lucky85: I can't have a static resource, it's my code behind I want to reach, and data aren't loaded in constructor they are loaded dynamically when my usercontrol is loaded by his creator. It have to load data from my code behind, that is already existing and cannot be created from the xaml like you do

@berXpert: seems interessting, but are these 3 collections dependant form each other???

object Collection 1
--Object collection 2
----Object Collection 3
----Object Collection 3
----Object Collection 3
--ObjectCollection 2
----....
----....

The goal is to have some bind on the current element of the gridview
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
LVL 5

Expert Comment

by:berXpert
ID: 33593649
What element are you using for the GridView?

Does your GridView has a name?

Can you post your code?

I built a sample master - detail based on your information. I was able to get details from an ItemSource as a "cousin" element outside of the stack, attached sample code and picture
<Window
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
	x:Class="WpfApplication1.MainWindow"
	x:Name="Window"
	Title="MainWindow"
	Width="640" Height="480" mc:Ignorable="d">

	<Window.Resources>
		<DataTemplate x:Key="ItemTemplate">
			<Border Width="215.25" Height="44.92" BorderBrush="#FF24C94D" BorderThickness="2">
				<Grid>
					<TextBlock Text="{Binding Name}" VerticalAlignment="Top"/>
					<CheckBox IsChecked="{Binding Property2}" HorizontalAlignment="Left" Margin="31.75,0,0,8" VerticalAlignment="Bottom" Width="69.25" d:LayoutOverrides="Width"/>
				</Grid>
			</Border>
		</DataTemplate>
	</Window.Resources>

	<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource SampleDataSource}}">
		<StackPanel Margin="63,34,65,65">
			<Border Margin="20,0,59,0" Height="215" Background="#FFBFCE2E" BorderBrush="#FF681818" BorderThickness="1">
				<StackPanel>
					<ListBox Name="MyList" Margin="0,0,-2,0" Height="205" ItemTemplate="{DynamicResource ItemTemplate}" ItemsSource="{Binding Collection}"/>
				</StackPanel>
			</Border>
			<Border Margin="20,0,59,0" Height="118" BorderBrush="#FF610909" BorderThickness="1">
				<StackPanel>
					<TextBox Text="{Binding Path=SelectedItem.Name, Mode=OneWay, ElementName=MyList}" TextWrapping="Wrap"/>
					<TextBox Text="{Binding Path=SelectedItem.Number, Mode=OneWay, ElementName=MyList}" TextWrapping="Wrap"/>
					<Image Height="100" Source="{Binding SelectedItem.Photo, ElementName=MyList, Mode=Default}"/>
				</StackPanel>
			</Border>
		</StackPanel>
	</Grid>
</Window>

Open in new window

Q-26414613.jpg
0
 
LVL 1

Author Comment

by:Nargzul
ID: 33594033
In fact it seems the problem is because I'm using a RadDocking below, and the raddocking works almost like a different windows

These are component of telerik
0
 
LVL 2

Expert Comment

by:balbirsingh1976
ID: 34527015
Did you try RelativeSource in WPF? i think that can work for you.
0
 
LVL 1

Accepted Solution

by:
Nargzul earned 0 total points
ID: 34532380
Yeah. The solution was to set from the code behind the datacontext to THIS, and access to a property.
0
 
LVL 1

Author Closing Comment

by:Nargzul
ID: 34613410
found myself the solution
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
MSDN Subscription - Azure and NFP's 3 75
How Does Quick Books store date / time? 3 104
Runtime error 76: path not found error VB6 program on Windows 7 3 543
Need more details 5 168
This article describes how to programmatically preset the "Pages per Sheet" option that's available with most printer drivers.   This setting lets you do "n-Up" printing, where two, four, or more pages are printed on each sheet of paper. If your …
In this article, I will show how to use the Ribbon IDs Tool Window to assign the built-in Office icons to a ribbon button.  This tool will help us to find the OfficeImageId that corresponds to our desired built-in Office icon. The tool is part of…
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

856 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question