2012-08-24 46 views
0

我有一個奇怪的場景。將StackPanel的實例綁定到XAML

我需要在代碼隱藏中創建一個StackPanel。然後我需要將這個stackpanel綁定到xaml中的UI。

通常我只是使用ContentControl來做到這一點。但它有焦點問題(它不能阻止從標籤順序焦點=「假」沒有效果)。我也嘗試了一個用戶控件,但是它有相同的問題。

所以我需要使用一些其他類型的控制。我已經決定了一個小組。 (StackPanel看起來和任何面板一樣好。)

但是,我似乎無法找到一種方法來綁定到我的Xaml中的「In Code」堆棧面板中?

有沒有辦法做到這一點? (不使用一個或ContentControl中用戶控件)

+1

你爲什麼要這樣做? –

+0

@ H.B。你只是好奇嗎?或者您是否需要更多信息來幫助我解決問題?如果只是好奇:我彌合了AvalonDock的MVVM實現和Prism之間的差距。如果你需要更多的信息來幫助我解決這個問題,那麼請在你的問題中更具體。 – Vaccano

+0

我只是經常質疑任何隱藏代碼的惡作劇,因爲人們喜歡無緣無故地在腳下自我射擊。因爲我不知道你的問題的具體情況,我不能評論這是否是一個好主意,開始... –

回答

1

它不能從標籤順序可調焦=「假」封鎖沒有效果

什麼IsTabStop

此外,最輕量級的使用是ContentPresenter這是我會用。

+0

IsTabStop導致內容控制中的所有項目也不在標籤頁中。 – Vaccano

+0

@Vaccano:嗯,我從來沒有見過任何不是輸入控件的控件,而是無論如何都是製表符。 –

+0

我正在向它注入一個棱鏡區域。所以它裏面有很多輸入控件。 – Vaccano

0

在KAXAML中對此進行了測試,當按下TAB時,焦點不會轉到ContentPresenter或ContentControl中定義的任何項目。

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <StackPanel> 
    <TextBox>aaaaa</TextBox> 
    <TextBox>bbbbb</TextBox> 
    <ContentControl Focusable="False"> 
    <ContentControl.ContentTemplate> 
    <DataTemplate> 
    <StackPanel Focusable="False" Background="Red" Width="100" Height="50"></StackPanel> 
    </DataTemplate> 
    </ContentControl.ContentTemplate> 
    </ContentControl> 
    <ContentControl Focusable="False"> 
    <ContentControl.ContentTemplate> 
    <DataTemplate> 
    <TextBox Focusable="False">hello</TextBox> 
    </DataTemplate> 
    </ContentControl.ContentTemplate> 
    </ContentControl> 
    <ContentPresenter Focusable="False"> 
    <ContentPresenter.Content> 
    <TextBox Focusable="False">hello</TextBox> 
    </ContentPresenter.Content> 
    </ContentPresenter> 
    <TextBox>ccccc</TextBox> 
    <TextBox>ddddd</TextBox> 
    </StackPanel> 
</Page> 
+0

奇怪。那麼在我的應用程序呢。這裏有幾個其他帖子有相同的問題:http://forums.silverlight.net/p/183027/420261.aspx http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/ ae32d24e-ecc5-4e94-87d8-f3da2ff91ae0 / – Vaccano