WPF MVVM 之理解(數據綁定)


 

(申明:最近在做一個練習,寫點東西,謹供參考。)

1、界面展示:其中的布局和樣式就不說了,重點在MVVM架構和數據綁定(Model層使用EF(Entity Framework)實體框架,不做介紹)。

 

綁定后:

2、架構介紹:

在Views層中新建CusGroupEditWindow窗體,ViewModels中建立CusGroupEditViewModel類,在窗體的xaml或者cs中引用ViewModels對應類:

   xaml中:

    <Window.DataContext>   

          <local:CusGroupEditViewModel/> <!--(添加引用local:為CusGroupEditViewModel的路徑)-->     

      </Window.DataContext>

  cs:DataContext = CusGroupEditViewModel。(添加引用路徑)

/***********************************************/

*CsGroup是在ViewModel中定義的一個CusGroup對象,    *

*CusGroup對象是在SQL數據庫中的表,在EF中的對象。    *

/***********************************************/

3、TextBox綁定:

  <TextBox MaxWidth="550" Width="100" Text="{Binding CsGroup.Alarm,Mode=TwoWay}" />

4、Button綁定:

  <Button Width="100" Height="35" Margin="10" Command="{Binding BtnChangedCommand}" CommandParameter="btnCusGroupSave" Background="#fc8530" >         

            <TextBlock  Text="保存"  FontWeight="Bold" FontSize="16"></TextBlock>

      </Button> 

<!-- Command="{Binding BtnChangedCommand}"中是在ViewModel中的委托,繼承ICommoand -->

<!--CommandParameter="btnCusGroupSave"  參數-->

5、CheckBox綁定:

  <CheckBox Name="cbCash" Margin="0,0,5,0" IsChecked="{Binding CsGroup.IsCash}"/>

  <!-- IsCash 是在SQL表中CusGroup中字段,bit類型--> 6、ComboBox綁定:

6、ComboBox綁定:

<ComboBox MaxWidth="150" Width="100" SelectedValue="{Binding StrCMBselectValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Text"
                                              SelectedValuePath="Value" ItemsSource="{Binding LstCSGDownLevelID, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
                                

 

 

 <!--SelectedValue:選中CommoBox的值,Mode雙向模式,屬性改變時觸發;DisplayMemberPath:顯示時綁定;SelectedValuePath:表示選擇下拉框某一項對應的值;ItemsSource:綁定的數據源 -->

<!-- 其中Value和Text也可理解為數據源,在ViewModel中有賦值-->                                                 

7、DataGrid綁定:

<DataGrid ColumnWidth="*" SelectedItem="{Binding CurrentSelectItem}"  ItemsSource="{Binding CsGroupsAll}" AutoGenerateColumns="False"  IsReadOnly="True" >
                                <DataGrid.Columns>
                                    <DataGridTextColumn Header="分組編號" Binding="{Binding Code}" />
                                    <DataGridTextColumn Header="分組名稱" Binding="{Binding Name}" />
                                </DataGrid.Columns>
                            </DataGrid>

 

/***************************************************************/

        //DataGrid當前選擇對象
        private CusGroup currentSelectItem;
        public CusGroup CurrentSelectItem
        {
            get { return currentSelectItem; }
            set
            {
                currentSelectItem = value;

                GetCutCmbSelect(value);
            }
        }
View Code

 

<!--代碼沒有自動縮進,有點不知所措-->

/***************************************************************/

 

ViewModel 中的代碼:

   
   
using HeYin.ERP.DataModels;
using HeYin.ERP.IServices;
using HeYin.ERP.Models;
using HeYin.ERP.Services;
using Microsoft.Practices.Prism.Commands;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows;
using System.Text.RegularExpressions;
using System.Windows.Controls;

namespace HeYin.ERP.Client.ViewModels.Customer
{
    class CusGroupEditViewModel : BaseViewModel
    {
        private bool bIsAdd = false;

        ICusGroupService CGS;  //調用IService接口

        #region Properties 屬性

        private Guid gCsGroupID = Guid.Empty;

        //All CusGroup
        private List<CusGroup> csGroupsAll;
        public List<CusGroup> CsGroupsAll
        {
            get { return csGroupsAll; }
            set
            {
                csGroupsAll = value; //設定值
                OnPropertyChanged("CsGroupsAll"); //在屬性更改后,通知
            }
        }

        private List<CusGroup> csGroupsMinPrestore;
        public List<CusGroup> CsGroupsAllMinPrestore
        {
            get { return csGroupsMinPrestore; }
            set
            {
                csGroupsMinPrestore = value; //設定值
                OnPropertyChanged("CsGroupsAllMinPrestore"); //在屬性更改后,通知
            }
        }

        //CusGroup對象
        private CusGroup csGroup;

        public CusGroup CsGroup
        {
            get { return csGroup; }
            set
            { csGroup = value;
                OnPropertyChanged("CsGroup"); }
        }

        /// <summary>
        /// 
        /// </summary>
        private string strCMBselectValue;
        public string StrCMBselectValue
        {
            get { return strCMBselectValue; }
            set
            {
                if (value != null)
                {
                    strCMBselectValue = value;
                    OnPropertyChanged("StrCMBselectValue");
                }
            }
        }

        /// <summary>
        /// ComboBoxDataModel:作為一個ComboBox的對象,可以理解為數據源
        /// </summary>
        private ObservableCollection<ComboBoxDataModel> lstCSGDownLevelID;
        public ObservableCollection<ComboBoxDataModel> LstCSGDownLevelID
        {
            get { return lstCSGDownLevelID; }
            set
            {
                lstCSGDownLevelID = value;
                OnPropertyChanged("LstCSGDownLevelID");
            }
        }

        //DataGrid當前選擇對象
        private CusGroup currentSelectItem;
        public CusGroup CurrentSelectItem
        {
            get { return currentSelectItem; }
            set
            {
                currentSelectItem = value;

                GetCutCmbSelect(value);
            }
        }

        private int errorCount;
        public int ErrorCount { get => errorCount; set => errorCount = value; }

        #endregion

        #region Commands
        public DelegateCommand<string> BtnChangedCommand { get; set; }

        public DelegateCommand<CusGroup> TxtChangedCommand { get; set; }
        
        #endregion

        public CusGroupEditViewModel()
        {
            CGS = new CusGroupService();
            CsGroupsAll = new List<CusGroup>();
            csGroup = new CusGroup();
            LstCSGDownLevelID = new ObservableCollection<ComboBoxDataModel>();
            BtnChangedCommand = new DelegateCommand<string>(MenuClick);
            TxtChangedCommand = new DelegateCommand<CusGroup>(ChangeCMBValue);

            GetAllCusGroups();
        }

        #region ButtonClick
        private void MenuClick(string strMessage)
        {
            if (string.IsNullOrEmpty(strMessage)) return;
            if (CsGroup == null) return;

            switch (strMessage)
            {
                case "btnCusGroupSave":
                    Save();
                    break;
                case "btnCusGroupAdd":
                    Add();
                    break;
                case "btnCusGroupDelete":
                    Delete();
                    break;
            }
        }
        #endregion ButtonClick

        #region motheds

        /// <summary>
        /// 獲取全部Group
        /// </summary>
        private void GetAllCusGroups()
        {
            //獲取滿足條件的客戶分組信息
            CsGroupsAll.Clear();
            CsGroupsAll = CGS.Get(s => s.IsDelete == 0);

            GetAllCMBItems();//給降檔分組下拉框賦值

            if ((gCsGroupID == null || gCsGroupID == Guid.Empty) && CsGroupsAll.Count > 0)
                CsGroup = CsGroupsAll[0];    //給基礎信息等賦值

            StrCMBselectValue = CsGroup.DownLevelID.ToString();//設置降檔分組默認值
        }

        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="cg"></param>
        private void AddCusGroup(CusGroup cg)
        {
            cg.ID = Guid.NewGuid(); //新建分組GUID
            cg.IsDelete = 0;        //默認為0:不刪除
            cg.CreateBy = App.GetCurrentUserId();//創建人員關聯員工 GUID
            cg.CreateTime = DateTime.Now;  //初始化創建時間,應該使用服務器當前時間

            bool c = CGS.Add(cg);
            if (c)
            {
                MessageBox.Show(string.Format("創建新組別【{0}】成功!", CsGroup.Name), "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                GetAllCusGroups();
                bIsAdd = false;
            }
        }

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="cg"></param>
        private void UpdateCusGroup(CusGroup cg)
        {
            bIsAdd = false;

            cg.UpdateTime = DateTime.Now;
            cg.UpdateBy = App.GetCurrentUserId();//更新人員關聯員工 GUID

            string[] str = { "UpdateTime", "UpdateBy" };
            bool b = CGS.Edit(cg, str);
            if (b)
            {
                MessageBox.Show("更改組別【成功】!", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                GetAllCusGroups();
            }
        }

        /// <summary>
        ///刪除方法(實為更新)
        /// </summary>
        /// <param name="cg"></param>
        private void DeleteCusGroup(CusGroup cg)
        {
            cg.IsDelete = 1; //更改數據庫刪除標志
            cg.UpdateTime = DateTime.Now;  //更新刪除時間
            cg.UpdateBy = App.GetCurrentUserId();//更新人員關聯員工 GUID
            string[] str = { "UpdateTime", "IsDelete", "UpdateBy" };
            bool b = CGS.Edit(cg, str);
            if (b)
            {
                //MessageBox.Show(string.Format("已刪除組別【{0}】!", CsGroup.Name), "提示", MessageBoxButton.OK, MessageBoxImage.Information);
                GetAllCusGroups();
                CsGroup = new CusGroup(); //清空對象
                bIsAdd = true;
            }
        }

        /// <summary>
        /// 插入和更新方法調用
        /// </summary>
        private void Save()
        {
            if (ErrorCount > 0)
            {//判斷必填數據是否為空:為空則提示
                MessageBox.Show("請核對所填數據", "提示", MessageBoxButton.YesNo, MessageBoxImage.Information);
                return;
            }

            if (bIsAdd)
                AddCusGroup(CsGroup);
            else
                UpdateCusGroup(CsGroup);
        }

        /// <summary>
        /// 獲取降檔分組下拉列表的值,並指定默認值
        /// </summary>
        /// <param name="value"></param>
        private void GetCutCmbSelect(CusGroup value)
        {
            bIsAdd = false;//點擊新增后,再選擇列表的邏輯

            if (value != null)
            {
                CsGroup = CGS.GetById(value.ID);//查找出當前選中的對象
                gCsGroupID = CsGroup.ID;        //保存當前選擇對象的GUID
                if (CsGroup != null)
                {
                    if (CsGroup.DownLevelID.HasValue)
                    {//如果降檔ID有值,則默認顯示,如果沒有,則顯示為空
                        GetExceptCMBSelect();//刷新下拉列表,先刷新,再賦值給默認值
                        StrCMBselectValue = CsGroup.DownLevelID.ToString();
                    }
                    else
                    {
                        LstCSGDownLevelID.Clear();
                        StrCMBselectValue = string.Empty;
                    }
                }
            }
        }

        private void Add()
        {
            bIsAdd = true;

            //點擊新建分組時,重新獲取所有降檔ID對應的中文名
            GetAllCMBItems();

            CsGroup = new CusGroup();
        }

        private void Delete()
        {
            if (this.CsGroup.ID == Guid.Empty || CsGroup.ID == null)
                MessageBox.Show("請選擇要刪除組別", "提示", MessageBoxButton.OK, MessageBoxImage.Information);
            else
            {
                MessageBoxResult msgResult = MessageBox.Show(string.Format("確定要刪除分組【{0}】嗎?", CsGroup.Name), "提示", MessageBoxButton.YesNo, MessageBoxImage.Information);
                if (msgResult == MessageBoxResult.Yes)
                    DeleteCusGroup(CsGroup);
            }
        }


        /// <summary>
        /// 排除當前列的降檔ID和對應的Name
        /// </summary>
        private void GetExceptCMBSelect()
        {
            LstCSGDownLevelID.Clear();
            CsGroupsAllMinPrestore = CGS.Get(s => s.IsDelete == 0 && s.MinPrestore <= CsGroup.MinPrestore);
            foreach (var iDlID in CsGroupsAllMinPrestore)
            {
                if (iDlID.ID != CsGroup.ID) //去除當前選擇ID對應的Name
                    LstCSGDownLevelID.Add(new ComboBoxDataModel() { Value = iDlID.ID.ToString(), Text = iDlID.Name });
            }
        }

        /// <summary>
        /// 獲取列表中所有降檔ID和對應的Name
        /// </summary>
        private void GetAllCMBItems()
        {
            LstCSGDownLevelID.Clear();
            foreach (var iDlID in CsGroupsAll)
            {
                LstCSGDownLevelID.Add(new ComboBoxDataModel() { Value = iDlID.ID.ToString(), Text = iDlID.Name });
            }
        }

        private void ChangeCMBValue(CusGroup cgMinPrestore)
        {
            LstCSGDownLevelID.Clear();
            List<CusGroup> lstTextChange = new List<CusGroup>();
            lstTextChange = CGS.Get(s => s.MinPrestore < cgMinPrestore.MinPrestore);
            foreach (var iDlID in lstTextChange)
            {
                LstCSGDownLevelID.Add(new ComboBoxDataModel() { Value = iDlID.ID.ToString(), Text = iDlID.Name });
            }
        }


        public void SizeChangedCommand(object obj, SizeChangedEventArgs e)
        {

            MessageBox.Show("日了狗");

        }

        #endregion
    }
}

 

View中代碼:

<client:BaseWindow x:Class="HeYin.ERP.Client.Views.Customer.CusGroupEditWindow"
        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:Interaction="http://schemas.microsoft.com/expression/2010/interactions"
        xmlns:Interactivity="http://schemas.microsoft.com/expression/2010/interactivity"
        xmlns:CommonValidation="clr-namespace:HeYin.ERP.Common.Validation;assembly=HeYin.ERP.Common"
        xmlns:client="clr-namespace:HeYin.ERP.Client"
        mc:Ignorable="d"
        x:Name="CusGroupWindow" 
        Title="客戶分組" Height="500" Width="800" 
        WindowStartupLocation="CenterOwner"
        Loaded="Window_Loaded" 
        MaxboxEnable="True" 
        MinboxEnable="False" >

    <Interactivity:Interaction.Triggers>
        <Interactivity:EventTrigger EventName="SizeChanged">
            <Interaction:CallMethodAction TargetObject="{Binding}" MethodName="SizeChangedCommand"/>
        </Interactivity:EventTrigger>
    </Interactivity:Interaction.Triggers>

    <Grid>

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="50" />
        </Grid.RowDefinitions>

        <Grid Grid.Row="0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="2*"/>
            </Grid.ColumnDefinitions>

            <!-- Left -->
            <Grid  Margin="5,0,5,5">
                <GroupBox Name="gbGroupData">
                    <GroupBox.HeaderTemplate>
                        <DataTemplate>
                            <WrapPanel Margin="{StaticResource WrapPanelMarginForInfo}">
                                <TextBlock Text="客戶分組"  Height="20" />
                                <Button Width="20" Height="20" Margin="50,0,0,0" 
                                        Command="{Binding DataContext.BtnChangedCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=GroupBox}}"
                                        CommandParameter="btnCusGroupAdd"
                                        Visibility="{Binding SaveVisibility,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
                                    <Image Source="..\..\Resources\Images\16\Add.png" />
                                </Button>

                                <Button Width="20" Height="20" Margin="10,0,0,0" 
                                        Command="{Binding  DataContext.BtnChangedCommand,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=GroupBox}}" 
                                        CommandParameter="btnCusGroupDelete"
                                        Visibility="{Binding SaveVisibility,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
                                    <Image Source="..\..\Resources\Images\16\Clear.png" />
                                </Button>
                            </WrapPanel>
                        </DataTemplate>
                    </GroupBox.HeaderTemplate>

                    <Grid>
                        <Grid Grid.Row="1">
                            <DataGrid ColumnWidth="*" SelectedItem="{Binding CurrentSelectItem}"  ItemsSource="{Binding CsGroupsAll}" AutoGenerateColumns="False"  IsReadOnly="True" >
                                <DataGrid.Columns>
                                    <DataGridTextColumn Header="分組編號" Binding="{Binding Code}" />
                                    <DataGridTextColumn Header="分組名稱" Binding="{Binding Name}" />
                                </DataGrid.Columns>
                            </DataGrid>
                        </Grid>
                    </Grid>
                </GroupBox>
            </Grid>

            <!-- Right -->
            <Grid Grid.Column="1" Margin="5">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="100"/>
                    <RowDefinition Height="130"/>
                </Grid.RowDefinitions>

                <!-- 基礎信息 -->
                <Grid>
                    <GroupBox>
                        <GroupBox.Header>
                            <TextBlock Text="基礎信息" Height="20"/>
                        </GroupBox.Header>

                        <StackPanel>
                            <Grid Margin="0,10">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>

                                <TextBox  Visibility="Collapsed" x:Name="tbErrorCount" Text="{Binding ErrorCount, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox>
                                <WrapPanel Margin="{StaticResource WrapPanelMarginForInfo}">
                                    <TextBlock Width="60" Margin="{StaticResource TextBlockMarginForMostLeft}"><Run Text="分組編號" /></TextBlock>
                                    <TextBox Name="txtCusGropCrod" MaxWidth="150" Width="100" 
                                             ToolTip="{Binding RelativeSource={RelativeSource self},Path=(Validation.Errors).CurrentItem.ErrorContent}" Validation.Error="Validation_Error">
                                        <TextBox.Text>
                                            <Binding Path="CsGroup.Code" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True" NotifyOnValidationError="True">
                                                <Binding.ValidationRules>
                                                    <ExceptionValidationRule></ExceptionValidationRule>
                                                    <CommonValidation:RequiredValidationRule MaxLenth="15" ErrorMessage="分組編號" IsRequired="True" ValidatesOnTargetUpdated="True" />
                                                </Binding.ValidationRules>
                                            </Binding>
                                        </TextBox.Text>
                                    </TextBox>
                                </WrapPanel>

                                <WrapPanel Margin="{StaticResource WrapPanelMarginForInfo}" Grid.Column="1">
                                    <TextBlock Text="分組名稱" Width="60" Margin="{StaticResource TextBlockMarginForMostLeft}"/>
                                    <TextBox Name="txtCusGropName"  MaxWidth="150" Width="100" 
                                             ToolTip="{Binding RelativeSource={RelativeSource self},Path=(Validation.Errors).CurrentItem.ErrorContent}" Validation.Error="Validation_Error">
                                        <TextBox.Text>
                                            <Binding Path="CsGroup.Name" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True" NotifyOnValidationError="True">
                                                <Binding.ValidationRules>
                                                    <ExceptionValidationRule></ExceptionValidationRule>
                                                    <CommonValidation:RequiredValidationRule MaxLenth="15" ErrorMessage="分組名稱" IsRequired="True" ValidatesOnTargetUpdated="True" />
                                                </Binding.ValidationRules>
                                            </Binding>
                                        </TextBox.Text>
                                    </TextBox>
                                </WrapPanel>
                            </Grid>

                            <Grid>
                                <WrapPanel Margin="{StaticResource WrapPanelMarginForInfo}">
                                    <TextBlock Margin="{StaticResource TextBlockMarginForMostLeft}" Width="60" VerticalAlignment="Center"><Run Text="分組描述" /></TextBlock>

                                    <TextBox x:Name="tbRemark"  TextWrapping="Wrap" AcceptsReturn="True" VerticalScrollBarVisibility="Visible" Width="400" Height="90"
                             ToolTip="{Binding RelativeSource={RelativeSource self},Path=(Validation.Errors).CurrentItem.ErrorContent}" Validation.Error="Validation_Error">
                                        <TextBox.Text>
                                            <Binding Path="CsGroup.Description" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" ValidatesOnDataErrors="True" NotifyOnValidationError="True">
                                                <Binding.ValidationRules>
                                                    <ExceptionValidationRule></ExceptionValidationRule>
                                                    <CommonValidation:RequiredValidationRule MaxLenth="300" ErrorMessage="分組描述"  ValidatesOnTargetUpdated="True" />
                                                </Binding.ValidationRules>
                                            </Binding>
                                        </TextBox.Text>
                                    </TextBox>
                                </WrapPanel>
                            </Grid>
                        </StackPanel>
                    </GroupBox>
                </Grid>

                <!-- 消費相關 -->
                <Grid Grid.Row="1" Margin="0,10,0,10">
                    <Grid>
                        <GroupBox>
                            <GroupBox.Header>
                                <TextBlock Text="消費相關"/>
                            </GroupBox.Header>

                            <Grid Margin="0,10">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>

                                <WrapPanel Margin="{StaticResource WrapPanelMarginForInfo}">
                                    <TextBlock Text="消費積分" Width="60" Height="20" Margin="{StaticResource TextBlockMarginForMostLeft}" />
                                    <TextBox Name="txtCusGropJF" MaxWidth="150" Width="100" Text="{Binding CsGroup.PointConversion, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
                                </WrapPanel>
                                <WrapPanel Grid.Column="1" Margin="{StaticResource WrapPanelMarginForInfo}"  HorizontalAlignment="Left" VerticalAlignment="Center">
                                    <CheckBox Name="cbCash" Margin="0,0,5,0" IsChecked="{Binding CsGroup.IsCash}"/>
                                    <TextBlock Text="開通預存或儲值時禁止現金交易" />
                                </WrapPanel>
                            </Grid>
                        </GroupBox>
                    </Grid>
                </Grid>

                <!-- 預存相關 -->
                <Grid Grid.Row="2">
                    <GroupBox>
                        <GroupBox.Header>
                            <TextBlock Text="預存相關"/>
                        </GroupBox.Header>

                        <StackPanel>
                            <Grid Margin="0,10">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>

                                <WrapPanel Margin="{StaticResource WrapPanelMarginForInfo}">
                                    <TextBlock Width="80" Margin="{StaticResource TextBlockMarginForMostLeft}" ><Run Text="預存最低充值"/></TextBlock>
                                    <TextBox MaxWidth="150" Width="100" Text="{Binding CsGroup.MinPrestore, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
                                </WrapPanel>
                                <WrapPanel Grid.Column="1" Margin="{StaticResource WrapPanelMarginForInfo}">
                                    <TextBlock Width="80" Text="金額低缺報警" Margin="{StaticResource TextBlockMarginForMostLeft}" />
                                    <TextBox MaxWidth="550" Width="100" Text="{Binding CsGroup.Alarm,Mode=TwoWay}" />
                                </WrapPanel>
                            </Grid>

                            <Grid Margin="0,5">
                                <WrapPanel Margin="{StaticResource WrapPanelMarginForInfo}">
                                    <TextBlock Width="190" Text="預存金額未達到最低要求時降檔至" Margin="{StaticResource TextBlockMarginForMostLeft}"/>
                                    <ComboBox MaxWidth="150" Width="100" SelectedValue="{Binding StrCMBselectValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Text"
                                              SelectedValuePath="Value" ItemsSource="{Binding LstCSGDownLevelID, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
                                </WrapPanel>
                            </Grid>
                        </StackPanel>
                    </GroupBox>
                </Grid>
            </Grid>
        </Grid>

        <!-- bottom -->
        <Grid Grid.Row="2">
            <WrapPanel HorizontalAlignment="Center" VerticalAlignment="Center" Margin="{StaticResource WrapPanelMarginForInfo}">
                <Button Margin="1" Command="{Binding BtnChangedCommand}" CommandParameter="btnCusGroupSave" Background="#fc8530" Style="{StaticResource SaveButtonStyle}"
                        Visibility="{Binding SaveVisibility,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" >
                    <TextBlock  Text="保存"  FontWeight="Bold" FontSize="16"></TextBlock>
                </Button>
            </WrapPanel>
        </Grid>
    </Grid>
</client:BaseWindow>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM