2011-09-05 134 views
0

我有一個用戶控件,上面有2個網格。現在我希望能夠檢索具有焦點的網格並將其展示給我的視圖模型。我怎樣才能在WPF中做到這一點? 我想填充我的視圖模型中的一個屬性,其名稱爲Grid,該名稱具有焦點。這似乎並不容易。用戶控件在WPF中的屬性

任何人都可以幫忙嗎?

Thx!

回答

0

如果您將UI元素或特定部件暴露給您的視圖模型,您應該重新考慮您的設計。通常你的viewmodel不應該知道任何特定的UI元素。你想要用ui元素的名字做什麼?你可以聽GotFocus事件上的兩個網格 像

<Grid x:Name="Grid1" GotFocus="OnGridGotFocus"/> 
<Grid x:Name="Grid2" GotFocus="OnGridGotFocus"/> 

而且這種方法添加到您的用戶控件,在這個方法中,你可以通過

private static void OnGridGotFocus(object aSender, RoutedEventArgs aE) 
{ 
    string name = (string)(aSender as DependencyObject).GetValue(NameProperty); 
} 

名字現在可以寫入檢索您綁定到您的視圖模型的DependencyProperty。但是,我仍然認爲你不應該這樣做。

如果你解釋你到底想要達到什麼目的,也許我們可以幫助你更好。

+0

Thx爲您的答覆。我在View中有一個按鈕,它將網格的內容保存到一個Excel文件中。但爲了編寫正確的文件,我需要知道網格的重點。所以我需要一種方法來從我的用戶控件(包含2個網格)檢索網格的焦點。 – PitAttack76

+0

你如何準確地將一個Grid,這是一個WPF中的Layouter,寫入一個excel文件?也許你的意思是不同的。 – dowhilefor

+0

我知道這是一箇舊的,但我沒有回答如何將WPF網格寫入Excel文件的問題。網格數據源是一個集合,我使用EPPlus DLL將集合寫入Excel文件。如果你需要創建一個excel文件,這是一個很好的工具,我一直都在使用它。 – PitAttack76