none
WPF 新增Resources時出現錯誤 RRS feed

  • 問題

  • 大家好,我是一個正在學習WPF的新手,

    目前正在實作一個IValueConverter介面要給3個RadioButton使用,但是當我實作好後

    要再XAML檔中實現時,卻出現 "BoolToStrConv" 不存在於 "clr-namespace:RX_IC_NVM_Set.ViewModels" 命名空間中。  

    讓我很疑惑的是我不知道我錯在哪裡,詪請各位高手幫我指正

    以下是我的程式碼:

    XAML

    <Window x:Class="RX_IC_NVM_Set.View.MainView" 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" xmlns:local2="clr-namespace:RX_IC_NVM_Set.ViewModels" xmlns:local="clr-namespace:RX_IC_NVM_Set.View" mc:Ignorable="d" Title="MainView" Height="300" Width="500"> <Window.DataContext> <local2:ViewModel/> </Window.DataContext> <Window.Resources> <local2:BoolToStrConv x:Key="BooleanToStringConverter" /> </Window.Resources> <Grid> <StackPanel Orientation="Vertical" VerticalAlignment="Center"> <RadioButton Content="USER" IsChecked="{Binding Path=Bank,Converter={StaticResource BooleanToStringConverter }, ConverterParameter= 1}" HorizontalAlignment="Left" Height="15" Grid.Row="2" VerticalAlignment="Top"/> <RadioButton Content="Set" HorizontalAlignment="Left" Height="15" Grid.Row="2" VerticalAlignment="Top" /> <RadioButton Content="Fun" HorizontalAlignment="Left" Height="15" Grid.Row="2" VerticalAlignment="Top" /> <RadioButton Content="Test" HorizontalAlignment="Left" Height="15" Grid.Row="2" VerticalAlignment="Top" /> </StackPanel> </Grid> </Window>


    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.ComponentModel; using RX_IC_NVM_Set.Command; using RX_IC_NVM_Set.Model; using System.Windows.Input; using System.Text.RegularExpressions; using System.Windows.Data; namespace RX_IC_NVM_Set.ViewModels { public abstract class BoolToStrConv : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (System.Convert.ToBoolean(value)) { return parameter; } return false; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } } class ViewModel: ViewModelBase { private bool cmd; public bool CMD { get { return cmd; } set { cmd = value; OnPropertyChanged("cmd"); } } public int Bank { get; set; } public int Address { get; set; } public string Data { get; set; } public ButtonCtrlCell ConnectButtonText { set; get; } public ViewModel() { CMD = true; Bank = 0; Address = 0; Data = "00"; ConnectButtonText = new ButtonCtrlCell("連接", true); } } }


    有錯的地方,還請指教


    2016年1月6日 上午 11:15

解答

所有回覆

  • 當你寫好一個 ValueConverter 後, 先做一次編譯, 然後再把他加進 XAML 的 Recources 裡面試試.

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2016年1月6日 下午 01:25
    版主
  • 很怪的是,當我在放入資源時打入"<"後可以選到Local2按tab後會直接跳出 BoolToStrConv的選項可選,但是當我整個完成後,系統就會跳出不存在的訊息,讓我很困擾!

    2016年1月7日 上午 01:53
  • 最後把整個Visual studio砍掉重裝,完工
    • 已標示為解答 Aiden1536 2016年1月7日 上午 02:56
    2016年1月7日 上午 02:56