嗨,我發現這個質疑WPF GUI管理使用Thread.CurrentPrincipal中
How to manipulate WPF GUI based on user roles
他的回答適用於我的項目。我正在實施相同的行爲。
但事情是屬性綁定不起作用。
我創建RoleToVisibilityConverter類,並做一些測試,調用轉換
RoleToVisibilityConverter conv = new RoleToVisibilityConverter();
conv.Convert((object)Thread.CurrentPrincipal,cbo_organismo.GetType(),(object)"editor",System.Globalization.CultureInfo.CurrentCulture);
這項工作發現,然後我的資源添加到我的用戶
<UserControl.Resources>
<fundafe:RoleToVisibilityConverter x:Key="roleConverter"/>
</UserControl.Resources>
,並綁定到我的按鈕控制
<Button Margin="0,0,0,0" Visibility="{Binding Source=Thread.CurrentPrincipal, Path=CurrentPrincipal, Converter={StaticResource roleConverter}, ConverterParameter=editor}" VerticalAlignment="Center" HorizontalAlignment="Left" Name="btn_Eliminar" Click="btn_Eliminar_Click" Width="Auto" Height="25" Background="Transparent" BorderBrush="Transparent">
<Image Name="img_eliminar" Width="48" Source="imagenes/borrar.png" Height="19" />
</Button>
運行我的應用程序後,按鈕是仍然可見。
,如果我硬編碼Visibility屬性按鈕被隱藏
btn_Eliminar.Visibility=(Visibility)conv.Convert((object)Thread.CurrentPrincipal,cbo_organismo.GetType(),(object)"editor",System.Globalization.CultureInfo.CurrentCulture)
什麼建議嗎?
注: I'cant使用最後一種方法,因爲在我的真實的情景按鈕是一個ListView一個DataTemplate的一部分,即使捕捉使用TreeHelper按鈕ListView控件僅將更改應用於該虛擬化的第一項
嗨,我是新使用WPF,所以我沒有得到這一切結合的東西,感謝您的幫助。 我添加了這個引用xmlns:systhreading =「clr-namespace:System.Threading; assembly = System」 但我得到一個錯誤:類型線程沒有找到,任何想法我做錯了 – germandb 2009-11-07 18:39:05
Thread類實際上在mscorlib程序集中。所以你的命名空間聲明應該是:xmlns:systhreading =「clr-namespace:System.Threading; assembly = mscorlib」。 – 2009-11-07 19:53:36
多數民衆贊成在交易,謝謝;) – germandb 2009-11-08 11:36:27