我見過一個庫,它允許我在我的XAML中執行此操作,它根據用戶是否在角色中設置控件的可見性: s:Authorization.RequiresRole =「Admin 「自定義XAML屬性
在我的數據庫中使用該庫需要一堆我現在無法真正完成的編碼。最終這是我想知道的...
我已經從我的SPROC收到認證用戶角色,並且它當前作爲屬性存儲在我的App.xaml.cs中(對於最終解決方案不需要,僅供參考現在)。我想創建一個屬性(依賴項屬性?附加屬性?),它允許我說出與其他庫非常相似的內容:RequiresRole =「Admin」,如果用戶不在Admin角色中,將會崩潰可見性。任何人都可以在正確的方向指向我嗎?
編輯 建立授權下課後,我得到以下錯誤: 「屬性‘RequiredRole’不就在XML命名空間CLR的命名空間中的類型‘HyperlinkButton’存在:TSMVVM.Authorization」
我想添加這個XAML:
<HyperlinkButton x:Name="lnkSiteParameterDefinitions"
Style="{StaticResource LinkStyle}"
Tag="SiteParameterDefinitions"
Content="Site Parameter Definitions"
Command="{Binding NavigateCommand}"
s:Authorization.RequiredRole="Admin"
CommandParameter="{Binding Tag, ElementName=lnkSiteParameterDefinitions}"/>
當我開始鍵入S:Authorization.RequiredRole = 「管理」,智能感知把它撿起來。我嘗試將typeof(string)和typeof(ownerclass)設置爲HyperlinkButton,以查看是否有幫助,但沒有。有什麼想法嗎?
感謝您的迴應!這看起來不錯,但我有幾個關於實現的問題。 1)typeof(ownerclass) - 我將它設置爲授權,但我不確定這是否正確。 2)新的UIPropertyMetadata ...與新的PropertyMetadata相同嗎? UIPropertyMetadata不能解決我的問題。 3)我創建了UserHasRole方法,並簡單地返回true,如果App.Role.ToLower()與傳入的role.ToLower()相同。聽起來對嗎? 4)爲我的OP添加了一個編輯,因爲我在構建時出錯。 – 2011-02-11 23:56:45